0

我有一个名为 Customer 的 java 项目,在这个项目下我有另外 8 个模块,这 5 个模块中有 junit 测试类,并且每个模块都有单独的 ant 构建文件。我已经为每个项目创建(生成的单元测试报告)jacoco.exec,现在,我喜欢将这 5 个模块的单元测试报告合并到一个报告中,并在 sona 覆盖部分中明智地显示(或)显示每个模块的单元测试报告。您能否为此提供任何建议。

谢谢,约瑟夫

4

3 回答 3

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

于 2017-01-30T08:26:59.513 回答
0

非常感谢。再次对安..它对我有用,在为 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
于 2016-04-14T19:44:20.580 回答
0

你要做的是阅读每个模块的测试报告。您可以通过多模块项目配置来做到这一点。如果您从主 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 报告都位于标准位置,您甚至可能不需要指定它们,因为子模块继承其父模块的属性。多模块项目配置的文档在编写时并未考虑到 Ant 语法,但只要您从SonarQube Scanner for Ant 文档中牢记这一点,您就应该能够解决这个问题:

Ant 的 SonarQube Scanner 是一个 Ant Task,它是 SonarQube Scanner 的包装器,它通过调用 SonarQube Scanner 并将所有按照sonar.*约定命名的属性传递给它来工作。这具有不是非常 Ant-y 的缺点,但提供由新版本插件或 SonarQube 本身引入的任何新分析参数的即时可用性的优点。

于 2016-04-13T17:26:50.747 回答