使用Karma / Istanbul设置目标代码覆盖率

时间:2015-06-24 15:37:56

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

我正在使用Karma-Coverage(伊斯坦布尔)运行Karma Maven插件进行代码覆盖。对于所需(建议的?)代码覆盖率,Karma-Coverage似乎默认为80%,但是我想在项目中强制执行90%的代码覆盖率。但是,我无法弄清楚在哪里设置它。

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

2 个答案:

答案 0 :(得分:2)

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

  

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

     

例如,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引用的代码,您会看到业力正在进行相当标准的选项合并,这意味着您不必重新创建整个检查对象。只是你关心的价值观。默认值为0.

答案 1 :(得分:0)

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