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

Kay*_*Kay 5 mocha.js node.js chai istanbul 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",
}
Run Code Online (Sandbox Code Playgroud)

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

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

Bli*_*itZ 0

有一个纽约 merge功能,能够合并由不同测试运行生成的多个覆盖率报告。您可以在nyc文档中阅读相关内容。

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

"test": "nyc mocha --timeout 5000000 -r ts-node/register --project tsconfig.json 'test/unit/*.test.ts' 'test/integration/*.test.ts' --exit"
Run Code Online (Sandbox Code Playgroud)