首页 > 解决方案 > 如何使用 NYC 获得单元测试和集成测试的综合覆盖率

问题描述

我想获得单元测试和集成测试的综合覆盖。

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

包.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",
}

现在我分别获得了他们两个的报道,但我可以看到它并不是所有报道的真实反映。

有什么办法可以结合覆盖范围摘要。这可能意味着我需要将管道中的两个阶段结合起来?

标签: node.jsmocha.jschaiistanbulnyc

解决方案


有一个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"

推荐阅读