2014-01-25 94 views
3

我正在使用“Istanbul cover test.js”运行一些节点js单元测试,其中test.js是主测试文件,它将调用我们代码库中的实际脚本。问题是它生成的覆盖率报告只在test.js文件中,而不在代码库中的实际代码行上。请原谅我,如果这是一个愚蠢的问题,但我怎么得到它显示覆盖率的测试是指实际的文件吗?伊斯坦布尔节点JS测试覆盖问题

回答

7

你必须运行istanbul cover针对运行的测试。 在文档中的例子是一个有点不清楚这一点:istanbul cover test.js假定test.js是运行所有测试,而不是测试本身的可执行

例如,如果你使用mocha为您的测试运行,它应该看起来像istanbul cover node_modules/.bin/_mocha(假设摩卡安装为本地devDependency)或istanbul cover mocha,如果它安装为全局模块。

+1

你能告诉我怎样才能运行茉莉花伊斯坦布尔呢?我试过“伊斯坦布尔封面茉莉节点”(我在Windows上使用它),它与Module._compile(module.js:439:25)失败。通常我会用额外的环境变量来启动jasmine-node,所以我需要以某种方式传递它们。 –

+0

@AlexShumilov'伊斯坦布尔封面./node_modules/jasmine-node/bin/jasmine-node spec/**/*。js'适合我。确保没有任何测试会在完成后让流程“挂起”,否则istanbul将无法运行。 – ccnokes

1

在Windows上:

如果你安装了全球茉莉节点:

istanbul cover /d/Users/rxxx/AppData/Roaming/npm/node_modules/jasmine-node/bin/jasmine-node ./ 

如果安装茉莉花节点本地:

istanbul cover ../node_modules/jasmine-node/bin/jasmine-node ./ 
0

在我的情况下,下面的命令工作时运行在package.json定义的脚本:

istanbul cover ../jasmine/bin/jasmine.js

相关问题