我正在尝试在package.json中设置任务
"scripts": {
"unit-test": "mocha './test/unit/**/*.spec.js'",
}
然而,当我跑
时npm run unit-test
在运行结束时,控制台中会抛出以下错误:
npm ERR! Darwin 16.6.0
npm ERR! argv "/Users/shreya.vakil/.nvm/v6.9.5/bin/node" "/Users/d.bubble/.nvm/v6.9.5/bin/npm" "run" "unit-test"
npm ERR! node v6.9.5
npm ERR! npm v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! myapp@0.0.1-SNAPSHOT unit-test: `mocha './test/unit/**/*.spec.js'`
npm ERR! Exit status 1
但是,如果我将命令更改为
"scripts" : {
"unit-test": "mocha './test/unit/**/*.spec.js'; exit 0",
}
不会抛出此错误。但是,我不确定这是否是正确的方法。
答案 0 :(得分:0)
原始行为是正确的,如果有点难看 - 如果你的测试失败,Mocha会返回退出代码1,这在技术上是一个错误。您的第二个示例使输出更漂亮,但如果您尝试将构建脚本集成到其他工具(例如,Travis),则会导致问题,因为它们无法检测到测试失败的时间
解决此问题的最佳方法是摆脱exit 0
并升级您的NPM版本 - the output was made much shorter in v4.6.1。您可以通过运行以下命令来执行此操作:
npm install npm -g