繁体   English   中英

Sonar + JaCoCo - Java和Groovy的代码覆盖率

[英]Sonar + JaCoCo - Code coverage for both Java and Groovy

我在为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>

我的Sonar属性位于父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测试类。 我的问题很简单,我错过了什么?

提前致谢!

您还需要添加源和测试配置:

<sonar.sources>src/main/java,src/main/groovy</sonar.sources>
<sonar.tests>src/test/java,src/test/groovy</sonar.tests>

看来这个插件忽略了Groovy。

  1. 在Sonar中安装Groovy插件。 以admin / admin身份登录,然后转到管理/系统/更新中心选项卡
  2. 在pom文件中添加以下属性<sonar.tests>src/test/groovy,src/test/java</sonar.tests>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM