3

当我为我的 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

4

1 回答 1

2

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

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

sbt clean coverage test it:test coverageReport

于 2016-09-16T16:09:10.190 回答