与伊斯坦布尔的Node JS测试覆盖问题

时间:2014-01-25 00:39:27

标签: node.js istanbul

我正在使用“Istanbul cover test.js”运行一些节点js单元测试,其中test.js是主测试文件,它将调用我们代码库中的实际脚本。问题是它生成的覆盖率报告只在test.js文件上,而不在代码库中的实际代码行上。请原谅我这是一个愚蠢的问题,但如何让它显示测试所涉及的实际文件的覆盖范围?

3 个答案:

答案 0 :(得分:7)

您必须针对运行的测试运行istanbul cover。 文档中的示例对此有点不清楚:istanbul cover test.js假设test.js是运行所有测试的可执行文件,而不是测试本身。

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

答案 1 :(得分:1)

Windows上的

如果您全局安装了jasmine-node:

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

如果您在本地安装了jasmine-node:

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

答案 2 :(得分:0)

在我的情况下,当以package.json

中定义的脚本运行时,以下命令有效

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