Выполнение тестов jasmine в Webstorm останавливается в трассировке с кодом выхода 0

Я запускаю тесты jasmine в своем приложении node.js через grunt. Я добавил grunt test в конфигурации запуска Webstorm.

В «Конфигурациях запуска/отладки» «Тест Grunt» указаны следующие свойства: интерпретатор узла (node.exe в Program Files), рабочий каталог (расположение проекта), файл JavaScript (двоичный файл grunt) и параметры приложения (test — имя задачи grunt) .

Конфигурация работает правильно, но останавливается без печати полного жасминового вывода. Иногда перед печатью любого вывода, чаще всего после некоторой части журнала jasmine, но до сводки теста или сведений об ошибках. Всегда последняя строка вывода

Process finished with exit code 0

Когда я беру команду Webstorm и запускаю ее вручную в консоли, она работает нормально и всегда выводит полный вывод:

"C:\Program Files\nodejs\node.exe" C:\...\node_modules\grunt-cli\bin\grunt test

Мои тесты включают в себя асинхронные случаи, поэтому для их запуска требуется около 20 секунд. Я заметил, что каждая попытка запустить тесты через Webstorm выводит немного более длинный вывод. Первая попытка закончилась ничем, но еще через десять я получил полный вывод с выводом теста.


person Terite    schedule 14.11.2013    source источник


Ответы (3)


Известная проблема, см. http://youtrack.jetbrains.com/issue/WEB-1926 и обсуждение stackoverflow (mocha + webstorm - сообщение об ошибке не работает )

person lena    schedule 14.11.2013
comment
Большое спасибо! Я потратил много времени на поиск любого обходного пути. - person Terite; 15.11.2013

Чтобы исправить описанный случай, мы можем запустить тесты jasmine напрямую с помощью команды jasmine-node (пропустив grunt).

Мы должны настроить новую «Конфигурацию запуска/отладки» на основе предварительной конфигурации «Node.js».

  • Интерпретатор узла (как обычно):

    C:\Program Files\nodejs\node.exe
    
  • Рабочий каталог: корень проекта,

  • Файл JavaScript:

    node_modules\grunt-jasmine-node\node_modules\jasmine-node\lib\jasmine-node\cli.js
    

    Это для моего случая (используя grunt-jasmine-node). Мы также можем указать путь к cli.js узлу jasmine, установленному глобально.

  • Переменные приложения:

    --verbose src/test/js
    

    Конечно, последний — это путь к каталогу тестов в моем проекте. Здесь мы можем указать список файлов или использовать другие команды и параметры jasmine-node.

person Terite    schedule 15.11.2013

Проблема в том, что process.exit() не ждет stdout. Вы должны отложить выходной вызов одним тиком, вот и все.

person inf3rno    schedule 04.02.2015