当我为我的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
放在命令行上?
答案 0 :(得分:2)
版本1.3.4中删除了自动测试后覆盖率最低检查(请参阅问题https://github.com/scoverage/sbt-scoverage/issues/132)。
将插件版本升级到最新的1.3.5并在所有测试后调用coverageReport
,例如:
sbt clean coverage test it:test coverageReport