2015-06-24 26 views
2

我使用Karma-Coverage(伊斯坦布尔)运行Karma Maven插件来获取代码覆盖率。 Karma-Coverage的默认代码覆盖率为80%,但是我想在项目中强制执行90%的代码覆盖率。但是,我无法弄清楚在哪里设置。使用Karma/Istanbul设置目标代码覆盖率

有没有一种方法来强制Karma /伊斯坦布尔的目标代码覆盖率?

回答

0

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

+0

水印属性与记录器输出的阈值有关,而不是如果不满足阈值使测试失败。 – SeanH

+0

我明白了。然后我会更新答案。 – MarcoL

2

这是记录在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引用的代码看,你会看到业力是做一个相当标准的选择合并,这意味着你不必重新创建整个检查对象。只是你关心的价值观。缺省值为0.