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

min*_*rse 4 karma-runner karma-coverage angular-cli angular

我试图弄清楚如何在角度CLI的生成的覆盖率报告中包含我的所有.ts源.目前,我只是覆盖了具有相关规范和测试的文件.

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

这是正确的方法吗?我正在使用Angular CLI 6.1.5

谢谢

Nar*_*arm 9

在Angular(v6)上为我工作的最简单的解决方案就是添加一个app.module.spec.ts文件来补充你app.module.ts的内容.spec包括以下代码

import './app.module';

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


Iho*_*hor 5

Narm 提供的解决方案确实很棒,但仍然不理想,因为需要手动导入至少所有延迟加载的模块 + 根模块进行测试,而且在大型项目中几乎总是有一些未使用/忘记的组件,这些组件不属于测试的一部分任何生产代码,并且将永远留在源代码中未经测试/未被发现。

\n\n

解决方案:

\n\n

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

\n\n

使用 \xe2\x86\x92 安装npm install --save-dev karma-sabarivka-reporter

\n\n

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

\n\n

此后 \xe2\x80\x93\xc2\xa0 所有匹配模式的文件将包含在最终的覆盖结果中

\n