SonarQube 4.4没有显示cobertura单元测试或grails 2.4.3的代码覆盖与spock测试

时间:2014-09-17 22:00:52

标签: sonarqube cobertura maven-cobertura-plugin

我的机器上安装了SonarQube 4.4。我正在尝试为使用Spock框架编写的测试的grails(2.4.3)项目生成度量标准。但是,声纳不显示单元测试结果或单元测试覆盖率。

我确认cobertura coverage.xml是在下面提供的路径中生成的

  

目标/测试报告/的Cobertura / coverage.xml

我有

  

sonar.groovy.cobertura.reportPath

我的pom.xml中的

属性映射到上面的路径。

运行

mvn sonar:sonar (maven version 3.2.3)
此项目上的

成功完成,控制台日志显示正在解析的coverage.xml。

然而,当我在声纳中查看项目时,我只看到静态代码分析指标,但没有单元测试或单元测试覆盖率。

我还尝试使用声纳 - 跑步者进行分析并获得相同的结果。

我尝试过sonar-groovy-plugin(版本:0.5,0.6和1.0.1)和sonar-cobertura-plugin-1.6.3

这是运行groovy spock测试的pom.xml构建部分

<plugin>
<groupId>org.grails</groupId>
<artifactId>grails-maven-plugin</artifactId>
<version>2.4.3</version>
<configuration>
    <grailsVersion>${grails.version}</grailsVersion>
    <fork>false</fork>
</configuration>
<extensions>true</extensions>
<executions>
    <execution>
        <id>grails-tests</id>
        <phase>test</phase>
        <goals>
            <goal>exec</goal>
        </goals>
        <configuration>
            <command>test-app</command>
            <args>--unit:spock</args>
        </configuration>
    </execution>
</executions>
</plugin>

任何人都使用类似的配置,并能够使用sonarqube和cobertura生成代码覆盖率指标?

1 个答案:

答案 0 :(得分:7)

对于遇到类似问题的其他人,这是解决方案。事实证明我们需要设置&#34; sonar.sources&#34; pom.xml中的属性,用于显示覆盖范围。以下是示例(您需要指定各个目录)

<sonar.sources>src/java,src/groovy,grails-app/services,grails-app/controllers,grails-app/domain,grails-app/jobs</sonar.sources>