我如何使用npm脚本运行摩卡?

我已经为我的脚本实现了一个testing用例,当我在Webstorm中使用mochaconfiguration执行它时,它运行得很好。

我的testing脚本的名字是adminTest.js。

现在我想要一个npm脚本来从控制台或者以后的版本服务器运行它。

为此,我在package.json中创build了一个脚本条目

这里是完整的文件:

{ "name": "cdh", "version": "0.0.1", "description": "CDH connector", "main": "cdh.js", "private" : true, "dependencies": { "cli-color": "^1.0.0", "handlebars": "^4.0.3", "sync-request": "^2.0.1", "jslint": "^0.9.3", "xmldom": "^0.1.19", "xpath": "^0.0.9", "mocha": "2.3.3 ", "proxyquire": "1.7.3", "mocha-sinon": "1.1.4", "jasmine" : "2.3.2", "chai" : "3.4.1" }, "devDependencies": {}, "scripts": { "test": "node ./node_modules/mocha/bin/mocha tests/**/*Test.js --reporter spec" }, "author": "kme", "license": "ISC" } 

当我用控制台的npm run test启动脚本时,会导致这个错误:

 > cdh@0.0.1 test C:\src\trunk\scripts\testing > node ./node_modules/mocha/bin/mocha tests/**/*Test.js --reporter spec npm ERR! Windows_NT 6.1.7601 npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\ node_modules\\npm\\bin\\npm-cli.js" "run" "test" npm ERR! node v4.2.0 npm ERR! npm v2.14.7 npm ERR! code ELIFECYCLE npm ERR! cdh@0.0.1 test: `node ./node_modules/mocha/bin/mocha tests/**/*Test.js --reporter spec` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the cdh@0.0.1 test script 'node ./node_modules/mocha/bin/moch a tests/**/*Test.js --reporter spec'. npm ERR! This is most likely a problem with the cdh package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! node ./node_modules/mocha/bin/mocha tests/**/*Test.js --reporter sp ec npm ERR! You can get their info via: npm ERR! npm owner ls cdh npm ERR! There is likely additional logging output above. npm ERR! Please include the following file with any support request: npm ERR! C:\src\trunk\scripts\testing\npm-debug.log 

npm-debug.log文件如下所示:

 0 info it worked if it ends with ok 1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe', 1 verbose cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js', 1 verbose cli 'run', 1 verbose cli 'test' ] 2 info using npm@2.14.7 3 info using node@v4.2.0 4 verbose run-script [ 'pretest', 'test', 'posttest' ] 5 info pretest cdh@0.0.1 6 info test cdh@0.0.1 7 verbose unsafe-perm in lifecycle true 8 info cdh@0.0.1 Failed to exec test script 9 verbose stack Error: cdh@0.0.1 test: `node ./node_modules/mocha/bin/mocha tests/**/*Test.js --reporter spec` 9 verbose stack Exit status 1 9 verbose stack at EventEmitter.<anonymous> (C:\Program Files\nodejs\node_modules\npm\lib\utils\lifecycle.js:214:16) 9 verbose stack at emitTwo (events.js:87:13) 9 verbose stack at EventEmitter.emit (events.js:172:7) 9 verbose stack at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_modules\npm\lib\utils\spawn.js:24:14) 9 verbose stack at emitTwo (events.js:87:13) 9 verbose stack at ChildProcess.emit (events.js:172:7) 9 verbose stack at maybeClose (internal/child_process.js:818:16) 9 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5) 10 verbose pkgid cdh@0.0.1 11 verbose cwd C:\src\trunk\scripts\testing 12 error Windows_NT 6.1.7601 13 error argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "test" 14 error node v4.2.0 15 error npm v2.14.7 16 error code ELIFECYCLE 17 error cdh@0.0.1 test: `node ./node_modules/mocha/bin/mocha tests/**/*Test.js --reporter spec` 17 error Exit status 1 18 error Failed at the cdh@0.0.1 test script 'node ./node_modules/mocha/bin/mocha tests/**/*Test.js --reporter spec'. 18 error This is most likely a problem with the cdh package, 18 error not with npm itself. 18 error Tell the author that this fails on your system: 18 error node ./node_modules/mocha/bin/mocha tests/**/*Test.js --reporter spec 18 error You can get their info via: 18 error npm owner ls cdh 18 error There is likely additional logging output above. 19 verbose exit [ 1, true ] 

您的脚本定义不应包含node

 "scripts": { "test": "./node_modules/mocha/bin/mocha tests/**/*Test.js --reporter spec" }, 

或者,如果摩卡在全球安装:

 "scripts": { "test": "mocha tests/**/*Test.js --reporter spec" }, 

另请参阅: configuration节点npm package.json,以便“npm test”在unix和windows上都能正常工作 。

更新 :啊,看你正在工作的窗口,尝试改变上面的post中提到的脚本:

 "testOnWindowsUseThis" : "node node_modules/mocha/bin/mocha"