Angular CLI - 获取覆盖率报告以包括所有来源

Angular CLI - Get coverage report to include all sources

我正在尝试弄清楚如何将我所有的 .ts 源包含在 angular CLI 生成的覆盖率报告中。目前,我只覆盖了与测试相关的规范的文件。

我已经尝试将 includeAllSources 标志添加到我的 karma.conf.js 文件中,但这没有任何区别。

这里正确的方法是什么?我正在使用 Angular CLI 6.1.5

谢谢

在 Angular(v6) 上对我有用的最简单的解决方案只是添加一个 app.module.spec.ts 文件来补充您的 app.module.ts 并在该 .spec 中包含以下代码

import './app.module';

显然由于 app.module.ts 是您的应用程序的根,包括该模块的 .spec 将导致在代码覆盖期间包含您的所有文件 (ng test --code-coverage)

真的很棒,但仍然不理想,因为需要手动导入至少所有延迟加载模块 + 根模块到测试,而且在大项目中几乎总是有一些 non-used/forgotten 不属于任何生产代码的组件,它们将永远留在源代码中 untested/undiscovered。

解法:

https://github.com/kopach/karma-sabarivka-reporter

要使用它 → 安装 npm install --save-dev karma-sabarivka-reporter

并按照此处所述更新 karma.conf.js https://github.com/kopach/karma-sabarivka-reporter#-usage

在此之后 – 所有匹配模式的文件都将包含在最终覆盖结果中