Question

I am using mocha-phantomjs setup for unit testing. I have following package.json scriot to run the tests.

"scripts": {
"test": "npm run testFlickr",
"testFlickr": "mocha-phantomjs ./test/FlickrTest.html" 
}

This run ok in browser. And when I run the command npm testin cmd, the test run alright but it also gives following error

3 passing (5s)
6 failing


npm ERR! flickr-test@ testFlickr: `mocha-phantomjs ./test/FlickrTest.html`
npm ERR! Exit status 6
npm ERR!
npm ERR! Failed at the flickr-test@ testFlickr script.
npm ERR! This is most likely a problem with the flickr-test package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     mocha-phantomjs ./test/FlickrTest.html
npm ERR! You can get their info via:
npm ERR!     npm owner ls flickr-test
npm ERR! There is likely additional logging output above.
npm ERR! System Windows_NT 6.1.7600
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nod
ejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "testFlickr"
npm ERR! cwd C:\Users\user\Desktop\test
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.3
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     C:\Users\user\Desktop\test\npm-debug.log
npm ERR! not ok code 0
npm ERR! Test failed.  See above for more details.
npm ERR! not ok code 0

Please can anyone tell me how can I resolve this error.

Was it helpful?

Solution 3

And when I run the command npm test in cmd, the test run alright

No they aren't. You have 6 failing tests. The exit code of mocha-phantomjs is equal to the number of failing tests. Run mocha-phantomjs ./test/FlickrTest.html directly and see what is failing. Realize the PhantomJS is a bit different than your browser - you may have to debug it.

Your script setup is odd. You should just have:

"scripts": {
   "test": "mocha-phantomjs ./test/FlickrTest.html"
}

Then the odd node errors should go away.

OTHER TIPS

I was having this same problem, and what fixed it for me was when I run my unit tests, do NOT use

npm run test

instead use:

npm test

When running npm test it squelches ELIFECYCLE errors so you never encounter this experience.

Reference to code

Once you move a test script to a different script-name you'll start seeing ELIFECYCLE errors.

My fix is to add a exit 0 to the end of the command. For your code it would look like this:

"scripts": {
  "test": "npm run testFlickr",
  "testFlickr": "mocha-phantomjs ./test/FlickrTest.html; exit 0" 
}

This is a problem when using npm run, it has to do with Mocha exiting with code !== 0 whenever a test fails. If you are on Windows try this:

"scripts": {
  "test": "npm run testFlickr || ECHO.",
  "testFlickr": "mocha-phantomjs ./test/FlickrTest.html || ECHO." 
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top