从npm脚本运行伊斯坦布尔错过了测试

时间:2017-09-06 20:17:49

标签: npm istanbul

如果我直接从终端运行以下命令,我看到我运行了233次测试。

./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- --compilers coffee:coffee-script/register --require ./coffee-coverage-loader.js --require lib/bootstrap.coffee test/lib/**/*.coffee

但是,如果我将其设置为package.json中的脚本,如:

"coverage": "./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- --compilers coffee:coffee-script/register --require ./coffee-coverage-loader.js --require lib/bootstrap.coffee test/lib/**/*.coffee"

并运行npm run coverage我只看到74个测试已经运行。

我的测试在test/lib/**/*.coffee

为什么通过npm运行命令会导致运行较少的测试?

我注意到未运行的测试位于test/lib/*/*/*.coffee

1 个答案:

答案 0 :(得分:0)

通过在npm脚本中的glob模式周围添加引号来修复:

"coverage": "./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- --compilers coffee:coffee-script/register --require ./coffee-coverage-loader.js --require lib/bootstrap.coffee './test/lib/**/*.coffee'"

我不确定为什么我必须将./test/lib/**/*.coffee放在引号中才能使其正常工作。