多个java单元测试报告的声纳报告

时间:2016-04-13 16:59:41

标签: unit-testing sonarqube sonarqube-scan

我有一个名为Customer的java项目,在此我有另外8个模块,其中5个模块有junit测试类,每个模块都有单独的ant构建文件。我为每个项目创建了(生成单元测试报告)jacoco.exec,现在,我想将这5个模块组合在一起。单元测试报告到一个报告中,并在sona覆盖部分显示(或)显示每个模块的显示单元测试报告。能否对此提出任何建议。

谢谢, 约瑟夫

3 个答案:

答案 0 :(得分:0)

您要做的是阅读每个模块的测试报告。您可以使用多模块项目配置来完成此操作。如果你从main build.xml处理它,那么它可能是最直接的。我没有从Ant测试过这个,但是这样的事情应该可行

<property name="sonar.projectKey" ...
<!-- all normal properties here -->
<property name="sonar.modules" value="module1,module2..." />
<property name="module1.sonar.jacoco.reportPath" value="...

请注意,如果Jacoco报告全部位于标准位置,您甚至可能不需要指定它们,因为子模块会继承其父级&#39;属性。用于多模块项目配置的The docs并未考虑到Ant语法,但只要您从SonarQube Scanner for Ant docs开始考虑这一点,您就应该能够解决这个问题:

  

Son的SonarQube扫描程序是一个Ant任务,它是SonarQube扫描程序的包装程序,它通过调用SonarQube扫描程序并将所有按照sonar.*约定命名的属性传递给它来工作。这有一个缺点,即不是非常蚂蚁,而是提供新版本的插件或SonarQube本身引入的任何新分析参数的即时可用性的好处。

答案 1 :(得分:0)

非常感谢。再次给Ann ..它对我有用,我的问题在为sonar-project.properties中的每个子项目添加单独的模块之后解决了(每个模块的覆盖范围和多种语言),如下所述。在Sonarqube中获取模块的'覆盖'结果..

# Modules
sonar.modules=common,help,mobile,partners

common.sonar.projectBaseDir=C:/dev/workspaces/hg/customer
common.sonar.sources=common/src/main/java,common/web
common.sonar.tests=common/src/test/java
common.sonar.binaries=common/bin
common.sonar.junit.reportsPath=common/test/reports/junitreport   
common.sonar.surefire.reportsPath=common/test/reports/junitreport
common.sonar.jacoco.reportPath=common/coverage/common.exec

help.sonar.projectBaseDir=C:/dev/workspaces/hg/customer
help.sonar.sources=help/src/main/java,help/web
help.sonar.tests=help/src/test/java
help.sonar.binaries=help/bin
help.sonar.junit.reportsPath=help/test/reports/junitreport   
help.sonar.surefire.reportsPath=help/test/reports/junitreport
help.sonar.jacoco.reportPath=help/coverage/help.exec

答案 2 :(得分:0)

这对我有用:

sonar.modules=common,help
sonar.sources=./src/main/java
sonar.binaries=./target/classes
sonar.tests=./src/test/java
sonar.junit.reportsPath=./target/surefire-reports

路径应该是相对的,因为声纳会自动导航到basedir / module_name / target / surefire-reports