перезапустить мокко с помощью супервизора на окнах

Я пытаюсь повторно запустить тесты мокко с помощью супервизора. Я пытался:

supervisor node_modules\.bin\mocha

Он входит в цикл с ошибкой:

basedir=`dirname "$0"`

Предложения?


person Larry Eitel    schedule 05.08.2012    source источник


Ответы (1)


Я думаю, все, что вы хотите сделать, это mocha -w:

-w, --watch                     watch files for changes

Он хорошо работает с точечно-матричным репортером (по умолчанию) и -G, чтобы выдавать вам рычащие уведомления, когда ваши тесты терпят неудачу.

Редактировать:

Я обнаружил упомянутые вами проблемы, связанные с Windows: Нет такой ошибки модуля при попытке заставить Mocha смотреть мой проект

Я тоже не могу помочь с этим.

Но вернемся к вопросу supervisor: когда я устанавливаю mocha, скрипт "bin" находится в node_modules/mocha/bin, и я могу запустить тесты повторно со следующим

supervisor node_modules/mocha/bin/mocha 

супервизор печатает несколько надоедливых строк DEBUG между каждым запуском теста, но их можно отключить с помощью --quiet. Однако, поскольку mocha завершает работу после каждого запуска, у вас есть загруженный цикл постоянных тестов.

person rdrey    schedule 05.08.2012
comment
Я пробовал это, но получаю: var b = process.binding('signal_watcher'); Ошибка: Нет такого модуля в process.startup.processSignalHandlers.process.on.process.addListener (node.js:468:27). Я понимаю, что это проблема Windows, и я пробовал обходной путь. Он разрешает ошибку в порядке, но затем он не может успешно НАБЛЮДАТЬ за изменениями. Мне нужно перезапустить мокко, чтобы повторно запустить тесты. Вот почему я пробовал подход «супервайзер». - person Larry Eitel; 06.08.2012
comment
Когда я запускаю тишину, он все равно не запускает тесты повторно. Мешает ошибка. Пробуем разные подходы. Я запускаю: узел супервизора node_modules/mocha/bin/mocha --require должен --require server. Он жалуется на: events.js:66 throw arguments[1]; // Необработанное событие "ошибка" Ошибка: прослушивание EADDRINUSE - person Larry Eitel; 06.08.2012
comment
EADDRINUSE обычно является признаком того, что порт, который вы пытаетесь открыть, уже используется другой программой. В вашем случае ваше приложение Express, вероятно, где-то запущено в командной строке, и ваши тесты пытаются запустить одно и то же приложение Express на том же порту, но не могут. - person rdrey; 06.08.2012
comment
Я только что понял это. Cake запускается на порту 3000. Поэтому я запустил вручную, как node server.js. Затем я вручную изменил порт на 3001, чтобы когда тест запускал сервер, он использовал другой порт. Я так и не смог заставить супервайзера работать. Однако я смог использовать nodemon, например: nodemon node_modules/mocha/bin/mocha --require должен --require server. Мне нужно будет установить ENV var для тестирования или что-то в этом роде, чтобы он использовал порт diff для тестирования. Спасибо за ваш вклад на этом пути. - person Larry Eitel; 06.08.2012
comment
Одна «незначительная» деталь заключается в том, что я НЕ МОГУ увидеть, какой тест не прошел. Он просто говорит: ? 1 из 2 тестов не пройден: ... приложение [nodemon] разбилось - ожидание изменения файла перед запуском... - person Larry Eitel; 06.08.2012
comment
какой mocha reporter вы используете? некоторые из них предоставляют гораздо больше деталей, чем другие. Но, возможно, nodemon обрезает ваш вывод для вас, когда он перезапускает приложение ... не могу точно сказать. - person rdrey; 06.08.2012