1

在我的公司,我们开发了由 Jenkins CI 服务器(使用 tycho 和 maven)持续构建的 eclipse 插件,该服务器还执行测试(单元测试和 SWTBot 测试)。作为构建后操作,我们通过 maven 将测试数据(JaCoCo 和 Surefire 报告)发送到 SonarQube 服务器进行分析。我们的源代码和测试都位于一个自己的模块中。

  • 在 src/com.mycompany.projectA/ 我们有来自项目 A 的源代码。
  • 在 test/com.mycompany.projectA.tests.ut/ 我们有来自项目 A 的单元测试。
  • 在 test/com.mycompany.projectA.tests.swtbot/ 我们有来自项目 A 的 swtbot 测试。

为了让 Sonar 能够为每个源插件的测试找到 Jacoco 和 Surefire 报告,我们在 pom.xml 中设置了报告路径:

<sonar.jacoco.reportPath>${project.basedir}/../../test/${project.artifactId}.tests.ut/target/jacoco.exec</sonar.jacoco.reportPath>
<sonar.surefire.reportsPath>${project.basedir}/../../test/${project.artifactId}.tests.ut/target/surefire-reports</sonar.surefire.reportsPath>

但这仅允许每个插件进行一次测试。为了还查看 SonarQube 中的 SWTBot 测试覆盖率,我们将 SWTBot 测试添加为集成测试(是的,我知道,不是很整洁......)

<sonar.jacoco.itReportPath>${project.basedir}/../../test/${project.artifactId}.tests.swtbot/target/jacoco.exec</sonar.jacoco.itReportPath>

像这样,我们至少可以在 SonarQube 中看到单元测试覆盖率以及 SWTBot 测试覆盖率。但由于我们只能为安全报告设置一个报告路径,Sonar 会忽略这些路径,我们无法看到有多少 SWTBot 测试通过/失败。

是否有一种方便的方法可以添加要在分析中考虑的多个安全报告位置?

4

2 回答 2

0

这还不可能,但有一张票可以打开:https ://jira.codehaus.org/browse/SONAR-4101

随意观看并投票。

于 2013-10-14T12:39:25.053 回答
0

也许您可以将每个项目的 jacoco.exec 附加在一起,并将集成的 jacoco 报告放入 Sonar。以下链接是集成 jacoco 报告的一个很好的示例。 http://www.lordofthejars.com/2012/07/jacoco-in-maven-multi-module-projects.html

于 2014-01-24T17:54:37.163 回答