Nodemon: Правильный способ использования nodemon с тестовыми программами?

Созданный на 8 февр. 2015  ·  12Комментарии  ·  Источник: remy/nodemon

При запуске тестов с использованием мокко или подобных ему, если тесты терпят неудачу, и, таким образом, бегун выходит с ненулевым кодом статуса, nodemon, кажется, думает, что что-то сломано в процессе, и умирает, не наблюдая за изменениями. Есть ли способ отказаться от такого поведения?

Самый полезный комментарий

Для тех, кто придет позже, вы можете обойти эту проблему, просто добавив || true чтобы заставить nodemon думать, что это удалось.

nodemon --exec "your_command_stuff || true"

Все 12 Комментарий

Вот результат, кстати. Как видите, я использую сценарий, определенный в package.json, для запуска nodemon и mocha ( nodemon -x "_mocha -R min $@" ,) не уверен, имеет ли это значение.

$ npm run test-dev

> [email protected] test-dev /Users/mstade/dev/funkis
> nodemon -x "_mocha -R min $@"

8 Feb 15:57:48 - [nodemon] v1.3.6
8 Feb 15:57:48 - [nodemon] to restart at any time, enter `rs`
8 Feb 15:57:48 - [nodemon] watching: *.*
8 Feb 15:57:48 - [nodemon] starting `_mocha -R min `


  545 passing (670ms)
  2 failing

  1) Protocol when called with an empty signatures object should throw a TypeError:
     AssertionError: function (rest) { return apply(fn, this, argc, arguments) } must throw function TypeError() { [native code] }
      at Context.<anonymous> (/Users/mstade/dev/funkis/test/Protocol.js:15:39)
      at Test.Runnable.run (/Users/mstade/dev/funkis/node_modules/mocha/lib/runnable.js:221:32)
      at Runner.runTest (/Users/mstade/dev/funkis/node_modules/mocha/lib/runner.js:374:10)
      at /Users/mstade/dev/funkis/node_modules/mocha/lib/runner.js:452:12
      at next (/Users/mstade/dev/funkis/node_modules/mocha/lib/runner.js:299:14)
      at /Users/mstade/dev/funkis/node_modules/mocha/lib/runner.js:309:7
      at next (/Users/mstade/dev/funkis/node_modules/mocha/lib/runner.js:247:23)
      at Immediate._onImmediate (/Users/mstade/dev/funkis/node_modules/mocha/lib/runner.js:276:5)
      at processImmediate [as _immediateCallback] (timers.js:321:17)

  2) Protocol when called with a name, and some signatures should set immutable and enumerable properties on the protocol:
     TypeError: Signatures must be an object.
      at TypeError (native)
      at new Protocol (/Users/mstade/dev/funkis/lib/Protocol.js:8:34)
      at Protocol (/Users/mstade/dev/funkis/lib/Protocol.js:5:12)
      at Context.<anonymous> (/Users/mstade/dev/funkis/test/Protocol.js:21:15)
      at Test.Runnable.run (/Users/mstade/dev/funkis/node_modules/mocha/lib/runnable.js:221:32)
      at Runner.runTest (/Users/mstade/dev/funkis/node_modules/mocha/lib/runner.js:374:10)
      at /Users/mstade/dev/funkis/node_modules/mocha/lib/runner.js:452:12
      at next (/Users/mstade/dev/funkis/node_modules/mocha/lib/runner.js:299:14)
      at /Users/mstade/dev/funkis/node_modules/mocha/lib/runner.js:309:7
      at next (/Users/mstade/dev/funkis/node_modules/mocha/lib/runner.js:247:23)
      at Immediate._onImmediate (/Users/mstade/dev/funkis/node_modules/mocha/lib/runner.js:276:5)
      at processImmediate [as _immediateCallback] (timers.js:321:17)



util.error: Use console.error instead
[nodemon] failed to start process, possible issue with exec arguments
exception in nodemon killing node
Error: Uncaught, unspecified "error" event.
    at Error (native)
    at emit (events.js:78:13)
    at ChildProcess.<anonymous> (/Users/mstade/dev/funkis/node_modules/nodemon/lib/monitor/run.js:133:11)
    at ChildProcess.emit (events.js:101:17)
    at Process.ChildProcess._handle.onexit (child_process.js:1038:12)

----------------------------------------------------------
If appropriate, please file an error with the output from:
$ node /Users/mstade/dev/funkis/node_modules/.bin/nodemon -x _mocha -R min  --dump
At http://github.com/remy/nodemon/issues/new
----------------------------------------------------------


npm ERR! Darwin 14.1.0
npm ERR! argv "/usr/local/opt/nvm/versions/io.js/v1.0.4/bin/iojs" "/usr/local/opt/nvm/versions/io.js/v1.0.4/bin/npm" "run" "test-dev"
npm ERR! node v1.0.4
npm ERR! npm  v2.3.0
npm ERR! code ELIFECYCLE
npm ERR! [email protected] test-dev: `nodemon -x "_mocha -R min $@"`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] test-dev script 'nodemon -x "_mocha -R min $@"'.
npm ERR! This is most likely a problem with the funkis package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     nodemon -x "_mocha -R min $@"
npm ERR! You can get their info via:
npm ERR!     npm owner ls funkis
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/mstade/dev/funkis/npm-debug.log

Да, это _должно_ работать. Я делаю нечто подобное в других проектах. Я чувствую, что это связано с $@ . Какую ценность вы ожидаете от этого?

Иногда я использую его для определения того, какие тесты запускаются, и для передачи дополнительных параметров в Mocha, если мне это нужно. Но это прекрасно работает, это всегда терпит неудачу, когда в моем коде есть исключения, либо потому, что я их сам выбрасываю, либо из-за болванов. Раньше я использовал mocha -w но он, как известно, плохо справлялся с исключениями, а также не вносил изменений в других частях проекта, что прекрасно делает nodemon.

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

@mstade Я думаю, что это регресс 1.3.x. Заставил вернуться на 1.2.x.

Я сталкиваюсь с той же проблемой при выполнении теста $ npm run test

[nodemon] failed to start process, possible issue with exec arguments     
events.js:146                                                                        
    throw err;                                                                     
    ^                                                                             

Error: Uncaught, unspecified "error" event. (2)    
   at emit (events.js:144:17)        
   at ChildProcess.<anonymous> (/usr/lib/node_modules/nodemon/lib/monitor/run.js:124:11)      
   at emitTwo (events.js:87:13)        
   at ChildProcess.emit (events.js:172:7)     
   at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)  

Мой скрипт package.json

"scripts": {
    "server": "nodemon ./server.js localhost 5000",  
    "test": "PORT=8000 nodemon --ext js --watch ./ --exec 'mocha ./test' --delay 1"  
 },

Для тех, кто придет позже, вы можете обойти эту проблему, просто добавив || true чтобы заставить nodemon думать, что это удалось.

nodemon --exec "your_command_stuff || true"

Похоже, это дубликат №627, где они сообщают, что это происходит именно тогда, когда процессы завершаются с кодом ошибки 2. ENOENT: No such file or directory

@jayphelps большое спасибо.

мой тестовый скрипт выглядит так, надеюсь, кому-то поможет!

"test": "nodemon --watch . --exec 'mocha ./test/index.js || true'"

Эта проблема была автоматически помечена как неактивная и устаревшая, поскольку в последнее время не было активности. Он будет автоматически закрыт, если больше не будет активности. Если вы считаете, что это неправильно или проблема все еще не устранена , просто @remy (попробует!)
Спасибо за участие <3

Попробуйте использовать это

nodemon --exec mocha -R min

не используйте одинарные или двойные кавычки

"test": "NODE_ENV=test nodemon --exec mocha --exit -R spec"

И если вы запустите:

npm test dir/file.js

dir/file.js будет добавлено к сценарию тестирования, поэтому вы можете тестировать отдельные файлы.

При быстром двойном сохранении файла тесты также будут запускаться дважды, что может быть нежелательно.

Это сработало для меня:
"start": "nodemon ./bin/www --exec mocha ./test.js -R min"

Была ли эта страница полезной?
0 / 5 - 0 рейтинги