java - Jacoco参数化违规规则值

标签 java gradle kotlin code-coverage jacoco

我的 build.gradle 文件中有以下内容。如果覆盖范围低于某个值,我会尝试使构建失败。

project.task(type: JacocoCoverageVerification, "jacocoTestCoverageVerification", overwrite: true) {

    executionData(junitPlatformTestTask)
    sourceSets(sourceSets.main)
    sourceDirectories = files(sourceSets.main.allSource.srcDirs)
    classDirectories = files(sourceSets.main.output)
    onlyIf = {
        true
    }
    violationRules {
        rule {
            limit {
                counter = 'INSTRUCTION'
                value = 'COVEREDRATIO'
                minimum = 0.001
            }
        }
    }
}

如何在这里参数化“最小值”的值,以便在构建项目时可以通过 Jenkins 或 Team city 传递它。任何帮助将不胜感激。

最佳答案

在Jenkinks中使用参数化构建,添加参数“minimumValue”。然后你可以在 build.gradle 中使用它:

task jacocoJupTestReport(type: JacocoReport) {
    executionData(test)
    sourceSets(sourceSets.main)
    sourceDirectories = files(sourceSets.main.allSource.srcDirs)
    classDirectories = files(sourceSets.main.output)

    reports {
        xml.enabled true
        xml.destination file("${buildDir}/reports/jacoco/report.xml")
        html.enabled false
        csv.enabled false
    }

    jacocoTestCoverageVerification {
        violationRules {
            rule {
                limit {
                    counter = 'INSTRUCTION'
                    value = 'COVEREDRATIO'
                    minimum = project.properties["minimumValue"]
                }
            }
        }
    }
}

关于java - Jacoco参数化违规规则值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50603061/

相关文章:

java - 使用jsp导入excel数据存入数据库

java - 如何读取每个样本2字节大小的声卡输入流? (Java)

kotlin - 检查多个已知值时简化谓词

unit-testing - 如何编译使用 hamcrest 'is' 的 Kotlin 单元测试代码

java - Fuel、Kotlin、Gson,预期为 BEGIN_ARRAY,但在第 1 行为 BEGIN_OBJECT

java - Catmull Rom 样条实现 (LibGDX)

java - 在 Java 中对数组实例调用 hashCode()

android - gradle.build具有一尘不染的ktlint的Android Kotlin

android - Androidmanifest.xml文件中的gradle构建错误

android - 错误:未找到Gradle DSL方法: 'implementation()'