Nodemon: الطريقة الصحيحة لاستخدام nodemon مع العدائين الاختبار؟

تم إنشاؤها على ٨ فبراير ٢٠١٥  ·  12تعليقات  ·  مصدر: remy/nodemon

عند إجراء الاختبارات باستخدام mocha أو ما شابه ، إذا فشلت الاختبارات ، وبالتالي خرج العداء برمز حالة غير صفري ، يبدو أن nodemon يعتقد أن هناك شيئًا ما معطلاً بالعملية ويموت دون مراقبة التغييرات. هل هناك طريقة لإلغاء الاشتراك في هذا السلوك؟

stale

التعليق الأكثر فائدة

بالنسبة لأي شخص يأتي لاحقًا ، يمكنك حل هذه المشكلة بمجرد إلحاق || 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 بشكل جميل.

سأرى ما إذا كان بإمكاني التوصل إلى حالة repro أصغر في الأيام القليلة المقبلة. أود أن أقول إنني سأكون قادرًا أيضًا على رؤية الإصلاح والعلاقات العامة ، لكنني أخشى أنه من المحتمل ألا يكون لدي وقت لذلك ، لذلك أفضل عدم المبالغة في الوعود.

mstade أعتقد أن هذا انحدار بمقدار 1.3.x. جعلني أعود إلى 1.2.x.

أواجه نفس المشكلة عندما أقوم بإجراء اختبار تشغيل $ npm

[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 التقييمات