【问题标题】:Setting Target Code Coverage with Karma/Istanbul使用 Karma/Istanbul 设置目标代码覆盖率
【发布时间】:2015-09-10 21:57:12
【问题描述】:

我正在运行带有 Karma-Coverage(Istanbul) 的 Karma Maven 插件以进行代码覆盖。 Karma-Coverage 似乎默认为所需(建议?)代码覆盖率的 80%,但是我想在项目中强制执行 90% 的代码覆盖率。但是,我不知道在哪里设置它。

有没有办法使用 Karma/Istanbul 强制执行目标代码覆盖率?

【问题讨论】:

    标签: javascript maven karma-runner istanbul karma-coverage


    【解决方案1】:

    这在docs file in the repo. 中记录了“检查”属性部分。

    这将用于配置覆盖结果的最低阈值强制执行。如果未达到阈值,业力将返回失败。阈值,当指定为正数时,被视为所需的最小百分比。当阈值指定为负数时,它表示允许的未覆盖实体的最大数量。

    例如,statements: 90 表示最小语句覆盖率为 90%。 statements: -10 表示不超过 10 个未覆盖的语句。

    global 适用于所有文件,each 适用于每个文件。可以通过exclude 属性将文件或模式列表排除在强制执行之外。在每个文件或模式的基础上,可以通过overrides 属性覆盖每个文件的阈值。

    coverageReporter: {
      check: {
        global: {
          statements: 50,
          branches: 50,
          functions: 50,
          lines: 50,
          excludes: [
            'foo/bar/**/*.js'
          ]
        },
        each: {
          statements: 50,
          branches: 50,
          functions: 50,
          lines: 50,
          excludes: [
            'other/directory/**/*.js'
          ],
          overrides: {
            'baz/component/**/*.js': {
              statements: 98
            }
          }
        }
      }
    }
    

    如果您查看@MarcoCI 引用的代码,您会看到 karma 正在执行相当标准的选项合并,这意味着您不必重新创建整个检查对象。只是你关心的价值观。默认值为 0。

    【讨论】:

      【解决方案2】:

      使用check 选项作为@SeanH 的答案。

      【讨论】:

      • watermarks 属性与报告输出的阈值有关,而不是在未达到阈值时使您的测试失败。
      猜你喜欢
      • 2016-02-29
      • 1970-01-01
      • 2019-03-15
      • 2016-05-23
      • 2017-03-22
      • 2020-01-12
      • 2016-05-27
      • 2016-06-02
      相关资源
      最近更新 更多