我创建了一个包含源、测试和配置的简单场景。我当前的设置无法在 Sonar 中达到 100% 的代码覆盖率,即使它应该是这样。 (链接到具有来源的存储库 - https://bitbucket.org/sloukam/gradle-multiproject-coverage-sonar/src )
- 这有点复杂 - 它是 Gradle 多项目,在 java 和 groovy 中混合源代码和测试。
- 测试与源类位于同一模块中,有时测试位于“通用”测试模块中(我们称之为集成测试模块),相应的源位于其模块中(在这个简单的情况下位于模块 source_module_one 和 source_module_two 中。里>
- 某些源代码是用 Java 编写的并由 Groovy 测试覆盖,反之亦然。
花了很多时间后,我无法在本地 Sonar 中看到 100% 的代码覆盖率。我非常感谢帮助实现 100% 代码覆盖率的目标。我的项目结构可以吗?使用任何其他覆盖率插件吗?
最佳答案
首先,您当然应该重新考虑将测试与源放在同一目录中。为了将来的理智起见,我将测试隔离在不同的目录中。此外,如果您的测试与源文件一起存在,那么它们将被计为源文件。因此,您需要对您的测试进行测试,并测试您的测试测试,......无穷无尽。
除此之外,100% 的覆盖率也是一项 chalice 任务。对自己要求高标准是一件好事,但到了一定程度,你就会遇到 yield 递减规律。相反,我会将要求设置为... 90%? 92%? 95%?
关于java - 我的 gradle 多项目 + java + groovy + clover + sonarqube 无法在 Sonar 中达到 100% 代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44202761/