如何使用NYC获得单元测试和集成测试的合并覆盖率

时间:2019-02-04 12:13:47

标签: node.js mocha chai istanbul nyc

我想同时进行单元测试和集成测试。

我有单独的文件夹用于单元测试和集成测试。在我的管道中,因为集成测试需要依赖项,所以我有一个单独的阶段来进行单元测试和集成测试。

package.json

{
 "unit-test": "nyc mocha --timeout 5000000 -r ts-node/register --project tsconfig.json test/unit/*.test.ts --exit",
 "integration-test": "nyc mocha --timeout 5000000 -r ts-node/register --project tsconfig.json test/integration/*.test.ts --exit",
}

现在我分别获得了它们的覆盖率报告,但是我可以看到的是它并不是所有覆盖率的真实反映。

在某种程度上,我可以合并承保范围摘要。这可能意味着我需要将我的管道中的两个阶段结合起来?

1 个答案:

答案 0 :(得分:0)

有一个 nyc merge功能,它可以合并由不同测试运行生成的多个覆盖率报告。您可以在nyc docs中了解它。

其他方法是在同一命令中运行两个测试(因为 mocha 能够处理多个输入路径),如下所示:

"test": "nyc mocha --timeout 5000000 -r ts-node/register --project tsconfig.json 'test/unit/*.test.ts' 'test/integration/*.test.ts' --exit"