使用Sonarrunner和Gradle从Jacoco报告中排除软件包 [英] Exclude packages from Jacoco report using Sonarrunner and Gradle

查看:1310
本文介绍了使用Sonarrunner和Gradle从Jacoco报告中排除软件包的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有一种方法可以从SonarQube(由gradle + sonar-runner检测)覆盖报告(由jacoco生成)排除软件包,而不会完全将其从项目中排除?



以下是我到目前为止所尝试的内容:



版本信息




  • SonarQube 4.5 .1

  • Gradle 2.2。



Jacoco配置



  // JaCoCo测试范围配置
tasks.withType(测试){任务 - >
jacoco {
append = false

//从上面配置中定义的范围中排除了类
excludes = excludedClasses()
}

jacocoTestReport {
doFirst {
classDirectories = fileTree(dir:$ {buildDir} / classes / main /)。exclude(excludedClasses())
}
}




$ h $ Sonarrunner配置

属性设置从Sonar分析中排除软件包。将此添加到我的配置中会导致Sonar中完全不显示包。

 属性'sonar。排除',excludedClasses()。join(',')






从jacoco中排除软件包的属性设置。设置这将导致这样的情况,即包裹被排除在覆盖分析之外,但显示0%累积到不良总分。

 属性'sonar.jacoco.exclusions',excludedClasses()。join(',')


解决方法

通过使用sonar-project.properties中的 sonar.coverage.exclusions 属性,我已设法从覆盖率报告中排除特定的软件包。财产在官方文档中有描述


Is there a way to exclude packages from SonarQube(instrumented by gradle + sonar-runner) coverage reports(generated by jacoco) without excluding them completely from the project ?

Below is what i tried so far:

Version information

  • SonarQube 4.5.1
  • Gradle 2.2.

Jacoco configuration

// JaCoCo test coverage configuration
tasks.withType(Test) { task ->
    jacoco {
        append = false

        // excluded classes from coverage defined in above configuration
        excludes = excludedClasses()
    }

    jacocoTestReport {
        doFirst {
            classDirectories = fileTree(dir: "${buildDir}/classes/main/").exclude(excludedClasses())
        }
    }

}

Sonarrunner configuration

Property setting to exclude package from Sonar analysis. Adding this to my configuration lead to the situation that the packages do not show-up at all in Sonar.

property 'sonar.exclusions', excludedClasses().join(',')


Property setting to exclude packages from jacoco. Setting this leads to the situation that packages are excluded from coverage analysis however show up having 0% which accumulates to bad total scores.

property 'sonar.jacoco.exclusions', excludedClasses().join(',')

解决方案

I have managed to exclude particular packages from coverage reports by using sonar.coverage.exclusions property in sonar-project.properties. Property is described in official documentation

这篇关于使用Sonarrunner和Gradle从Jacoco报告中排除软件包的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆