Angular2 代码覆盖选项
Angular2 code coverage options
Javascript 具有以下代码覆盖率选项,例如:Istanbul、Karma、Blanket.js 和 JSCover.But 这些工具在 Angular2 中的支持情况如何?
我们知道 Angular2 可以实现 Istanbul,但是其他覆盖工具呢。
这个link清楚地解释了基于打字稿的代码覆盖率:-https://www.sitepen.com/blog/2015/09/29/code-coverage-for-typescript-and-other-transpiled-languages/
Angular CLI 使用内置的 Istanbul 创建项目。您 运行 ng test --code-coverage
生成 lcov
文件,并且您可以访问项目中的 karma 配置以根据需要自定义集成。
例如,在我的项目中,在文件 karma.conf.js
中,我有这样的东西:
coverageIstanbulReporter: {
dir: '../reports/jsCoverage',
reports: [ 'html', 'lcovonly' ],
fixWebpackSourcePaths: true
},
...
reporters: config.angularCli && config.angularCli.codeCoverage
? ['progress', 'coverage-istanbul']
: ['progress', 'kjhtml'],
更新:
在最新版本的 Angular CLI 中(不确定从什么时候开始,但在 v 1.2+ 中肯定,甚至可能是 1.1),您的 karma 配置甚至没有上面的 reporter
部分. CLI 根据需要自行添加 coverage-istanbul
。
Javascript 具有以下代码覆盖率选项,例如:Istanbul、Karma、Blanket.js 和 JSCover.But 这些工具在 Angular2 中的支持情况如何? 我们知道 Angular2 可以实现 Istanbul,但是其他覆盖工具呢。
这个link清楚地解释了基于打字稿的代码覆盖率:-https://www.sitepen.com/blog/2015/09/29/code-coverage-for-typescript-and-other-transpiled-languages/
Angular CLI 使用内置的 Istanbul 创建项目。您 运行 ng test --code-coverage
生成 lcov
文件,并且您可以访问项目中的 karma 配置以根据需要自定义集成。
例如,在我的项目中,在文件 karma.conf.js
中,我有这样的东西:
coverageIstanbulReporter: { dir: '../reports/jsCoverage', reports: [ 'html', 'lcovonly' ], fixWebpackSourcePaths: true }, ... reporters: config.angularCli && config.angularCli.codeCoverage ? ['progress', 'coverage-istanbul'] : ['progress', 'kjhtml'],
更新:
在最新版本的 Angular CLI 中(不确定从什么时候开始,但在 v 1.2+ 中肯定,甚至可能是 1.1),您的 karma 配置甚至没有上面的 reporter
部分. CLI 根据需要自行添加 coverage-istanbul
。