关于单元测试:未生成角度业力代码覆盖率报告文件夹

Angular karma code coverage report folder not generated

当我运行ng test --code-coverage时,覆盖率报告有时不会生成,有时也不会生成,因此我无法在执行测试套件后验证覆盖率声明。

我的业力配置

// Karma配置文件,请参阅链接以获取更多信息
// https://karma-runner.github.io/1.0/config/configuration-file.html

module.exports =函数(配置){
config.set({
basePath:",
框架:['jasmine','@ angular-devkit / build-angular'],
插件:[
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-jasmine-html-reporter'),
require('karma-coverage-istanbul-reporter'),
要求('@ angular-devkit / build-angular / plugins / karma')
],
客户:{
clearContext:false //使Jasmine Spec Runner输出在浏览器中可见
},
coverageIstanbulReporter:{
dir:require('path')。join(__ dirname,'../coverage'),
报告:['html','lcovonly'],
fixWebpackSourcePaths:是
},
记者:['progress','kjhtml'],
端口:9876,
颜色:真实,
logLevel:config.LOG_INFO,
autoWatch:是的,
浏览器:['Chrome'],
singleRun:错误
});
};


原因是,您的代码覆盖率未生成是因为某些损坏的单元测试阻止了代码覆盖率文件夹的生成。即使它产生了一些时间,但是那也必须比平时花费很多时间。请按照以下步骤操作,以识别并修复单元测试,以便每次都会生成代码覆盖文件-

  • 使用npm test运行测试。
  • 打开浏览器并检查测试,应该没有任何损坏或失败的测试案例。
  • 它不应出现任何控制台错误(在控制台上验证并修复。)
  • 验证所有单元测试正在运行并成功通过。有时它会显示已通过的单元测试,但是会出现一些弹出错误或控制台错误,因此这些测试会阻止生成单元测试代码。
  • 修复所有测试,它应该每次都生成单元测试代码coverage文件夹。


    就我而言,一切似乎都正确,但是控制台上没有生成覆盖文件或消息。

    解决问题的方法是编辑angular.json,并添加以下密钥:

    1
    projects.ClientApp.test.options.codeCoverage = true;


    通过以下命令生成新的代码覆盖文件夹

    1
    node --max_old_space_size=4096 ./node_modules/karma/bin/karma start ./test-config/karma.conf.js --coverage