从詹金斯(Jenkins)的Jacoco报道中排除包裹

由于我的Jenkins管道失败,尝试从覆盖率报告中排除软件包。我有一个包含所有POJO的子项目。我不想为所有这些编写uittest。因此,他们将下拉分支/行coverage,以使coverage低于阈值并使我的构建失败。

应该可以排除某些软件包,但我无法使其正常工作。

我有以下jacoco.gradle文件:

apply plugin: 'jacoco'  

apply plugin: 'java'

jacoco {

toolVersion = "0.8.2"

}

jacocoTestReport {

reports {

xml.enabled true

csv.enabled false

html.enabled true

}

afterEvaluate {

classDirectories = files(classDirectories.files.collect {

fileTree(dir: it, exclude: '**xxx/yyy/zzz/**')

})

}

task coverage { dependsOn 'jacocoTestReport' }

check.dependsOn 'jacocoTestReport'


我的sonar.gradle文件中的以下内容:

apply plugin: 'org.sonarqube'

sonarqube {

properties {

property "sonar.forceAnalysis", "true"

property "sonar.forceAuthentication", "true"

property "sonar.java.coveragePlugin", "jacoco"

property "sonar.login", ""

property "sonar.password", ""

}

}

subprojects {

sonarqube {

properties {

property "sonar.jacoco.reportPaths",

"$buildDir/reports/jacoco/allTests.exec"

property "sonar.junit.reportsPath", "$buildDir/test-results/test"

}

}

}

task sonar { dependsOn 'sonarqube' }


在我的build.gradle中:

apply from: 'gradle/sonar.gradle'  

...

apply plugin: 'java'

...

subprojects {

apply from: '../gradle/jacoco.gradle'

...

}


最后从我的Jenkins文件中:

step([$class: 'JacocoPublisher', changeBuildStatus: false, 

exclusionPattern: '**/*Test*.class', inclusionPattern:

'**/*.class', minimumBranchCoverage: '80', sourcePattern: '**/src'])

try {

dir(BUILD_DIR) {

sh './gradlew sonar'

}


但是xxx.yyy.zzz仍然在詹金斯的报道报告中生成!

回答:

终于成功了!关键是JacocoPuplisher。

step([$class: 'JacocoPublisher', changeBuildStatus: false, exclusionPattern: 

'**/xxx/yyy/zzz/**/*.class, **/*Test*.class', inclusionPattern: '**/*.class',

minimumBranchCoverage: '80', sourcePattern: '**/src'])

这是我与詹金斯一起工作的唯一方法。

设置sonar.coverage.exclusion或使用上述afterEvaluate东西无效。

以上是 从詹金斯(Jenkins)的Jacoco报道中排除包裹 的全部内容, 来源链接: utcz.com/qa/420335.html

回到顶部