可以对组合单元测试和集成测试施加最低覆盖率吗?
Can one impose a coverage minimum for combined unit and integration tests?
当我 运行 对我的 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
之前?
自动 post- 版本 1.3.4 中删除了测试覆盖率最小检查(请参阅问题 https://github.com/scoverage/sbt-scoverage/issues/132)。
升级插件版本到最新的1.3.5,并在所有测试后调用coverageReport
,例如:
sbt clean coverage test it:test coverageReport
当我 运行 对我的 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
之前?
自动 post- 版本 1.3.4 中删除了测试覆盖率最小检查(请参阅问题 https://github.com/scoverage/sbt-scoverage/issues/132)。
升级插件版本到最新的1.3.5,并在所有测试后调用coverageReport
,例如:
sbt clean coverage test it:test coverageReport