在package.json

时间:2017-05-23 15:08:59

标签: node.js npm mocha

我正在尝试在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",
}

不会抛出此错误。但是,我不确定这是否是正确的方法。

1 个答案:

答案 0 :(得分:0)

原始行为是正确的,如果有点难看 - 如果你的测试失败,Mocha会返回退出代码1,这在技术上是一个错误。您的第二个示例使输出更漂亮,但如果您尝试将构建脚本集成到其他工具(例如,Travis),则会导致问题,因为它们无法检测到测试失败的时间

解决此问题的最佳方法是摆脱exit 0并升级您的NPM版本 - the output was made much shorter in v4.6.1。您可以通过运行以下命令来执行此操作:

npm install npm -g