我正在编写一个应用程序,其目标类(在src / main / java中)被编写/编译到Java 7,但其单元测试(在src / test / java中)是用Groovy编写的。 当我运行mvn sonar:sonar时,我试图从Sonarqube获取指标。 我得到了大多数东西,但没有从JaCoCo获得代码覆盖率指标。 相反,当跑步者到达JaCoCo传感器时,我得到以下消息:

Project coverage is set to 0% as no JaCoCo execution data has been dumped: C:\Users\fiddlerpianist\Projects\emailnotifier\target\jacoco.exec

但是,当我在Eclipse中运行EclEmma coverage(使用JaCoCo)时,这些Groovy测试会获得完整的覆盖率报告。 它只是无法通过Sonarqube工作。 有谁知道为什么它不起作用,或者我是否有办法配置一些不同的东西以使其起作用? 我已经尝试了许多配置的排列,但是到目前为止……没有运气。

我正在使用的Maven Java编译器插件的配置略有不同(即,我使用lombok):

    <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <compilerId>groovy-eclipse-compiler</compilerId>
                <source>1.7</source>
                <target>1.7</target>
                <compilerArguments>
                    <javaAgentClass>lombok.core.Agent</javaAgentClass>
                </compilerArguments>
                <fork>true</fork>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.codehaus.groovy</groupId>
                    <artifactId>groovy-eclipse-compiler</artifactId>
                    <version>2.7.0-01</version>
                </dependency>
                <dependency>
                    <groupId>org.codehaus.groovy</groupId>
                    <artifactId>groovy-eclipse-batch</artifactId>
                    <version>2.0.8-01</version>
                </dependency>
                <dependency>
                    <groupId>org.projectlombok</groupId>
                    <artifactId>lombok</artifactId>
                    <version>1.12.6</version>
                </dependency>
            </dependencies>
        </plugin>

我的Groovy依赖项的范围为test

<dependencies>
    <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <version>2.0.8</version>
        <scope>test</scope>
    </dependency>
</dependencies>

我正在使用Sonarqube 3.7.4,Maven 3.1.1,Groovy 2.0.8和Java7。我正在使用Sonar Maven插件(版本2.2)的所有默认值。

===============>>#1 票数:1 已采纳

因此,事实证明,您必须在src/test/java文件夹中至少有一个扩展名为.java文件(甚至不必进行测试),然后一切正常。 它使我想起了与Maven的Groovy集成错误,该错误以前需要在您的Groovy代码中包含一个Java文件,但自此以后,它们已解决。

  ask by Jonathan W translate from so

未解决问题?本站智能推荐:

1回复

如何使用新的Gradle SonarQube插件向Jason报告Jacoco Groovy代码覆盖率?

我有一个使用Gradle的多模块Groovy项目。 我应用了jacoco,sonarqube插件。 我本来可以 查找build / jacoco / test.exec。 詹金斯(Jenkins)能够做到正确。 浏览所有代码覆盖率详细信息的jacocoHtml
2回复

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

我在为Java和Groovy编写的测试制作Sonar显示代码时遇到了一些问题。 我有一个Maven多模块项目,其中模块可以这样举例: firstServer的pom.xml如下所示: 我的Sonar属性位于父pom.xml中: 当我运行命令mvn package so
1回复

Groovy Gradle声纳运行器单元测试和代码覆盖率

嗨,我已经建立了一个用声纳运行器进行分析的常规项目,它适用于复杂性,代码行等,但是代码覆盖率显示为“-”,并且单元测试为0%。 这是我在Groovy插件中使用的声纳运行器属性文件0.6声纳运行器2.3声纳Qube 3.7 Jacoc 我想知道是否有人可以指出我正确的方向
1回复

由Groovy代码测试的Java代码的代码覆盖率

我有一个小项目,主要代码是用Java编写的,但是测试大多是常规代码。 如果我使用JaCoCo进行代码覆盖(由Sonar调用),则代码覆盖不会在我的Java代码上完成,因为当用Groovy加载Java类时,JaCoCo似乎没有使用其特殊的类加载器。 奇怪的是,我记得它曾经工作过(在嵌入JaCo
1回复

Jacoco SonarQube集成

我花了很多天的时间来尝试使SonarQube显示来自Maven Jacoco插件的单元测试代码覆盖率。 我遇到的错误消息是 target / site / jacoco / index.html下的报告将按预期生成,并包含突出显示的行和行号。 我已经读到,如果编译后的类中没有调试信息,则突出
3回复

如何使用声纳配置JaCoCo

如何用Sonar 2.3和Maven 3.0.4配置JaCoCo? 我的项目是一个多模块Maven项目。 我的顶级pom具有以下内容: 运行mvn sonar:sonar后,我在Sonar中收到0%的代码覆盖率报告。 我应该至少看到50%。 注意我确实在每个子项目的目标文件夹
3回复

如何使用SonarQube-6.7.5生成HTML报告

我正在使用apache-maven-3.5.4和Java 1.8进行Spring4.0项目,并且想使用SonarQube进行代码覆盖和报告。 我正在为此使用jacoco-maven-plugin 0.7.8版本插件。 我可以在浏览器中查看详细信息。 但是,当我尝试将报告生成为HTML时,看
1回复

声纳,雅各布和行家对我不合作

Maven的3.0.4 声纳Maven插件2.2 jacoco-maven-plugin 0.6.4.201312101107 当我运行mvn sonar:sonar ,jacoco-maven-plugin的prepare-agent目标无法运行,因此当需要时,ag
2回复

Sonar Maven插件:如何排除测试源目录?

我有一个带有Java源代码和Scala测试源的Maven项目。 我在verify阶段使用Jacoco生成代码覆盖。 当我尝试在验证阶段通过添加执行或运行mvn verify sonar:sonar来运行声纳目标时,我最终得到了Sonar两次添加的测试目录: 这导致分析失败,出现以下错
1回复

SonarQube,JaCoCo :(应该是22个条件中的11个)应该是3个(或4个)

我对SonarQube如何计算测试涵盖的条件一无所知。 使用的工具版本:* JaCoCo 0.8.1 * SonarQube 7.4 这是我的常规代码 这是测试 代码覆盖率报告说不满足那些条件,以下是我得到的唯一信息 这意味着尽管我从逻辑上相信可以做到,但我无