2

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

我以前有这个工作。今天早上上班。突然,它不是。

测试在dist/test/unit.js. 15 次测试,覆盖 80.29% 的代码(基于实验室的覆盖率报告)。但是我们已经准备好将伊斯坦布尔与声纳一起使用,所以我需要让它再次与伊斯坦布尔一起使用。无论如何,我更喜欢伊斯坦布尔的报道。

我正在运行测试:

./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无论哪种方式,(默认文件夹)中都没有输出。我可以通过管道强制它,但是当我将该输出运行到伊斯坦布尔(报告选项)时,我得到Error: Invalid report format [coverage/cover.info]

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

4

1 回答 1

-1

这个分辨率不是很令人满意。我检查了一些旧代码并且它有效,所以我从一个测试开始并跳过了其余的并使用了这个命令:

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

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

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

于 2016-08-19T15:02:55.143 回答