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
在此之后 – 所有匹配模式的文件都将包含在最终覆盖结果中
我正在尝试弄清楚如何将我所有的 .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
)
解法:
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
在此之后 – 所有匹配模式的文件都将包含在最终覆盖结果中