как отлаживать nodeunit с помощью нод-инспектора

Я могу сделать:

  • Я могу тестировать модули node.js, используя nodeunit.
  • Я могу отлаживать экспресс-сайт node.js с помощью инспектора узлов.

Но как отладить тест nodeunit с помощью инспектора узлов?

Я пробовал, но не работает:

  • nodeunit --debug myNodeUnitModule_test.js Не работает.
  • Я попытался установить nodebug. И использовал это так: nodebug /usr/local/bin/nodeunit myNodeunit_test.js Но это не работает ни на Ubuntu (No such file or directory), ни на Mac (env: node\r: No such file or directory)

Почти работает node --debug /usr/ local/bin/nodeunit ./routes/edit/bodyTelInfoArraysToObject_test.js

где /usr/local/bin/nodeunit — путь, пройденный командой which nodeunit

получил вывод: debugger listening on port 5858 и там выполнился тест.

Но я не могу перейти к отладке: когда я открываю URL-адрес localhost:8080 в хроме, чтобы посмотреть отладку:

  1. при первой загрузке я вижу пустой список файлов
  2. вторая загрузка: страница не найдена.

В моем тесте nodeunit я написал debugger, чтобы остановить отладку. Но ничего.


person Maxim Yefremov    schedule 20.05.2013    source источник


Ответы (2)


В ваши тесты вставьте команду debugger;

exports['Main test'] = function(test){
    debugger;

    test.expect(1);
    test.ok(true, 'Must be ok');
    test.done();
};

И начать все это

$ node --debug-brk `which nodeunit` test.js

Теперь в браузере нажмите F8, затем F10, и вы окажетесь прямо на следующей строке после первой команды debugger; в вашем тесте.

Но я предпочитаю начинать все с node-supervisor, который автоматически перезапускает тест, когда тест завершен или файлы в каталоге проекта изменены:

$ npm -g install supervisor node-inspector

$ # console 1
$ # supervisor restarts node-inspector when it quits
$ # ignores file changes
$ supervisor -i . -x node-inspector .

$ # console 2
$ supervisor --debug-brk -- `which nodeunit` test/index.js
person glukki    schedule 22.05.2013

Решение найдено:

  • в консоли: node --debug-brk `какой узел узла` ./path/To/My/NodeUnitTests/nodeunit_test.coffee (Внимание: `какой узел узла` заключен в кавычки)

  • в другой консоли: node-inspector &

  • И в гугл хром открываю: http://0.0.0.0:8080/debug?port=5858 Здесь я вижу отладку nodeunit с самого начала. Несколько раз нажмите «Продолжить выполнение» в браузере, пока не перейдете к тесту nodeunit, где у меня есть строка debugger;. Итак, я отлаживаю свой тест nodeunit с помощью nodespector.

person Maxim Yefremov    schedule 22.05.2013