我正在使用mocha-phantomjs设置进行单元测试。我有以下package.json scriot来运行测试。
"scripts": {
"test": "npm run testFlickr",
"testFlickr": "mocha-phantomjs ./test/FlickrTest.html"
}
这在浏览器中运行正常。当我在cmd中运行命令npm test
时,测试运行正常,但它也会出现以下错误
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
请有人告诉我如何解决此错误。
答案 0 :(得分:9)
运行npm test
时,它会压制ELIFECYCLE
错误,因此您永远不会遇到这种体验。
将测试脚本移动到其他脚本名称后,您将开始看到ELIFECYCLE
错误。
我的修复是在命令末尾添加exit 0
。对于您的代码,它看起来像这样:
"scripts": {
"test": "npm run testFlickr",
"testFlickr": "mocha-phantomjs ./test/FlickrTest.html; exit 0"
}
答案 1 :(得分:7)
我遇到了同样的问题,为我解决的问题是当我运行单元测试时, NOT 使用
npm run test
改为使用:
npm test
答案 2 :(得分:3)
当我在cmd中运行命令npm test时,测试运行正常
不,他们不是。你有6个失败的测试。 mocha-phantomjs
的退出代码等于失败测试的数量。直接运行mocha-phantomjs ./test/FlickrTest.html
,查看失败的原因。实现PhantomJS与您的浏览器略有不同 - 您可以have to debug it。
您的脚本设置很奇怪。你应该只有:
"scripts": {
"test": "mocha-phantomjs ./test/FlickrTest.html"
}
然后奇数节点错误应该消失。
答案 3 :(得分:2)
这是使用npm run
时的一个问题,它与Mocha退出代码!== 0每当测试失败时。如果你在Windows上试试这个:
"scripts": {
"test": "npm run testFlickr || ECHO.",
"testFlickr": "mocha-phantomjs ./test/FlickrTest.html || ECHO."
}