是否可以对组合单元和集成测试施加最小覆盖范围?

时间:2016-09-14 20:25:37

标签: scala sbt scoverage

当我为我的sbt项目运行单元测试时(使用sbt clean coverage test),我获得了大约77%的代码覆盖率。

当我运行集成测试(sbt clean coverage it:test)时,我获得了大约10%的代码覆盖率。

当我同时运行两个(sbt clean coverage test it:test)时,我得到的代码覆盖率为~84%。

我想设置一个极具侵略性的代码覆盖率,如果不满足则无法构建,但是如果我添加这些构建设置:

coverageMinimum := 83
coverageFailOnMinimum := true

...然后运行sbt clean coverage test it:test,在单元测试之后,在集成测试运行之前检查最小覆盖率,并且构建失败:

[error] Coverage is below minimum [77.0% < 83.0%]

如果我在it:test之前加test,那就更糟了([10.0% < 83.0%])。

有没有办法规定只有在单元和集成测试运行后才能应用83%的最小值?或者我注定单独通过单元测试来设置最小可覆盖范围,并始终记得在test之前将it:test放在命令行上?

1 个答案:

答案 0 :(得分:2)

版本1.3.4中删除了自动测试后覆盖率最低检查(请参阅问题https://github.com/scoverage/sbt-scoverage/issues/132)。

将插件版本升级到最新的1.3.5并在所有测试后调用coverageReport,例如:

sbt clean coverage test it:test coverageReport