如何让 Istanbul 报告 Lab/Hapi.js 测试的覆盖范围?

问题描述 投票:0回答:1

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

我以前已经成功过这个工作了。今天早上正在工作。突然间,事实并非如此。

测试在

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]

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

node.js code-coverage hapi.js istanbul hapi.js-lab
1个回答
-1
投票

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

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

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

我唯一能想到的是,我从 npm 命令中删除了

rm -rf coverage
(它是:转译、删除覆盖率、运行覆盖率、打开覆盖率报告;在一个 npm 命令中用分号分隔)。也许这阻碍了伊斯坦布尔编写报道工件?

© www.soinside.com 2019 - 2024. All rights reserved.