有没有办法从业力覆盖文本报告器结果中排除所有 100% 或阈值的文件?

Posted

技术标签:

【中文标题】有没有办法从业力覆盖文本报告器结果中排除所有 100% 或阈值的文件?【英文标题】:Is there a way to exclude all files with 100% or at a threshold across the board from karma-coverage text reporter results? 【发布时间】:2021-07-17 11:24:22 【问题描述】:

这对我来说很挑剔,我知道,但我有一个大型 Angular 应用程序,其中许多文件被 100% 覆盖或非常接近它,我想排除这些结果,所以我可以处理我需要并且没有所有额外的噪音。

我不想按名称排除文件,因为如果它们发生更改,它们可能会低于 OK 阈值。

我的karma.conf.js(我知道我可能不需要某些插件,这是团队共享的文件):

// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html

module.exports = function (config) 
  config.set(
    basePath: '',
    frameworks: ['jasmine', '@angular-devkit/build-angular'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('karma-jasmine-html-reporter'),
      require('karma-coverage'),
      require('@angular-devkit/build-angular/plugins/karma')
    ],
    reporters: ['progress', 'coverage'],
    coverageReporter: 
      reporters: [
        type: 'text',
        type: 'text-summary',
      ]
    ,
    browsers: ['ChromeHeadless'],
    preprocessors: '**/*.ts': ['coverage'],
    restartOnFileChange: true,
  );
;

我将尝试在此处附上我的示例输出的屏幕截图,类型为:'text'coverageReporter:

我尝试搜索 SO 和 karma / karma-coverage 文档,但我只能找到专门按名称排除文件/路径或更新阈值,但后者似乎仅用于确定显示的颜色。谢谢~

编辑:由于每个目录只有一个文件,因此通过为目录及其下的一个文件打印数字来不重复数字也很有用。我想我可能只需要深入研究杂草并创建一个拉取请求或其他东西。

【问题讨论】:

【参考方案1】:

为此,您可以生成 HTML 格式的覆盖率报告。在那里您可以选择根据代码覆盖率对文件进行排序。

要启用此类报告,您必须在 karma 配置中更新 coverageReporter 属性 -

coverageReporter: 
    includeAllSources: true,
    dir: 'coverage/',
    reporters: [
        type: 'text',
        type: 'text-summary',
        type: 'html', subdir: 'html/'
      ]
    ,

报告将在coverage/html 文件夹中生成。

【讨论】:

谢谢你的第二个建议,虽然不是我想要的:( - 我不认为文本报告器有办法

以上是关于有没有办法从业力覆盖文本报告器结果中排除所有 100% 或阈值的文件?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Cobertura 从代码覆盖中排除方法

如何使用 isparta 从业力的代码覆盖范围中排除第三方导入(如 jquery)?

业力覆盖率报告显示代码已覆盖(显然未覆盖)

singleRun = true 时未创建业力覆盖文件

从 gcov/lcov 覆盖结果中排除某些功能

使用 Sonarrunner 和 Gradle 从 Jacoco 报告中排除包