首页 > 解决方案 > gradle jacoco 与 integrationTest 和排除

问题描述

我正在使用gradle jacoco 插件来获取测试和集成测试的覆盖率报告。集成测试的来源是使用test-sets 插件定义的。为了让报告中涵盖测试和集成测试,我从这篇文章中推断出我应该调用 executionData 并包含 *.exec 文件。现在,我试图弄清楚如何从 jacoco 报告(和分析)中排除单个类。使用 Gradle 过滤 JaCoCo 覆盖率报告指向使用 afterEvaluate 并更改 classDirectories,但是当我使用它时会生成一个空报告。

plugins {
    id 'org.unbroken-dome.test-sets' version '1.5.0'
}

apply plugin: 'java'
apply plugin: 'jacoco'

sourceSets {
    main {
        java {
            srcDirs = ['jsrc']
        }
    }
}

testSets {
    integrationTest {
        dirName = 'integration-test'
    }
}

jacocoTestReport {
    executionData fileTree(project.rootDir.absolutePath).include("**/build/jacoco/*.exec")
    // commented because causes the report to be empty
    //afterEvaluate {
    //    classDirectories = files(classDirectories.files.collect {
    //        fileTree(dir: it, exclude: ['**/TheOneClassToExclude.*'])
    //    })
    //}
}

万一这很重要,我将 gradle 4.4 与 JDK7 一起使用。

标签: gradlejacoco

解决方案



推荐阅读