我如何让伊斯坦布尔报告Lab / Hapi.js测试的报道?

时间:2016-08-18 23:28:58

标签: node.js code-coverage istanbul lab hapi.js

编辑:几个月后,我完全迁移到了Lab,它运行良好,包括覆盖范围。也许在我写这个实验室的时候,没有一个很好的覆盖工具。

我之前已经开始工作了。今天早上工作了。突然间,事实并非如此。

测试在dist/test/unit.js。 15项测试涵盖80.29%的代码(基于实验室的覆盖率报告)。但我们设置将伊斯坦布尔与Sonar一起使用,所以我需要让它再次与伊斯坦布尔合作。无论如何,我更喜欢伊斯坦布尔的报道。

我用以下方式运行测试:

./node_modules/.bin/istanbul cover ./node_modules/.bin/lab -- -l -e development -r lcov dist/test

测试运行。全部通过。屏幕输出是覆盖率报告:

...
DA:801,1
DA:802,1
DA:803,1
DA:804,1
DA:805,1
DA:806,1
DA:807,1
LF:774
LH:738
end_of_record
No coverage information was collected, exit without writing coverage information

为什么这告诉我没有收集任何报道?如何让这两个工具再次很好地协同工作?

摆脱-r lcov并没有什么帮助。任何方式./coverage(默认文件夹)中都没有输出。我可以通过管道强制它,但是当我将输出运行到istanbul(报告选项)时,我得到Error: Invalid report format [coverage/cover.info]

似乎正在生成的报道报告无效。我怎么会知道?

1 个答案:

答案 0 :(得分:0)

关于这一点的决议并不令人满意。我检查了一些旧的代码并且它有效,所以我从一个测试开始,跳过其余的并使用了这个命令:

./node_modules/.bin/istanbul cover ./node_modules/.bin/lab -- -l -e development ./dist/test/unit.js

然后我逐一从测试中删除了跳过。最后,覆盖率报告适用于所有测试。不知道实际问题是什么阻止伊斯坦布尔昨天收集报道信息。

我能想到的唯一一件事就是我从我的npm命令中删除了rm -rf coverage(它是:transile,删除覆盖,运行覆盖,打开覆盖报告;在一个以分号分隔的npm命令中)。也许这阻止了伊斯坦布尔编写报道文物?