【发布时间】:2016-04-19 13:15:02
【问题描述】:
首先:这不是关于 SonarQube 不是显示单元测试成功的问题。这个主题有很多问题和答案,但都没有帮助。
我的设置:在Jenkins 1.644 上使用Maven 3.x 触发的SonarQube 5.2,并带有默认的安全测试。这就是 SonarQube 中的结果:
如您所见,它正确显示所有项目的单元测试成功。选择一个项目使我们能够打包测试成功。在这一点上,它变得越来越奇怪。例如 GUI 包:它说 8,3 % 项目测试成功但 0,0 % 包测试成功。这怎么可能?
我已在 SonarQube 分析所基于的目录 <project dir>/target/surefire-reports 中查找原因。在那里你可以看到三个生成的 .xml 文件/类:
文件中的一些摘录向我们展示了:
Test set: xxx.gui.main.AppConfigurationTest
Tests run: 4, Failures: 0, Errors: 4, Skipped: 0
Test set: xxx.gui.main.ConfigurationHolderTest
Tests run: 7, Failures: 0, Errors: 7, Skipped: 0
Test set: xxx.gui.servlet.XxxHttpServletTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
做一些计算会给你 4 + 7 + 1 = 12 个总测试和 1 / 12(成功/总)= 8,3 %!这就是项目测试成功诞生的地方。
问题是:为什么 SonarQube 中不显示类 xxx.gui.servlet.XxxHttpServletTest(当然测试成功率为 100%)?你有什么想法吗?
【问题讨论】:
标签: unit-testing sonarqube surefire