我遇到了一些问题,要为使用Java和Groovy编写的测试制作Sonar显示代码。我有一个Maven多模块项目,其中模块可以这样举例:
firstServer
src/test/groovy
package1
GroovyTest1.groovy
GroovyTest2.groovy
src/test/java
package2
JavaTest1.java
JavaTest2.java
firstServer的 pom.xml 如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
...
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.7.201606060606</version>
<configuration>
<destFile>${sonar.jacoco.reportPath}</destFile>
<append>true</append>
</configuration>
<executions>
<execution>
<id>agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
</build>
我的声纳属性位于父 pom.xml:
中<properties>
<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
<sonar.jacoco.reportPath>${project.basedir}/../target/jacoco.exec</sonar.jacoco.reportPath>
</properties>
当我运行命令 mvn package sonar:sonar 并访问SonarQube以查看结果时,代码覆盖率仅考虑java类。我在单元测试中看不到任何常规类,即使我有很多。我想我在POM文件中遗漏了一些东西,但我不知道是什么。我已经读过在使用Sonar和JaCoCo时可以混合使用Groovy和Java测试类。我的问题很简单,我错过了什么?
提前致谢!
答案 0 :(得分:0)
您还需要添加源和测试配置:
<sonar.sources>src/main/java,src/main/groovy</sonar.sources>
<sonar.tests>src/test/java,src/test/groovy</sonar.tests>
看来插件忽略了Groovy。
答案 1 :(得分:0)
<sonar.tests>src/test/groovy,src/test/java</sonar.tests>