使用Gradle和Kotlin DSL配置Jacoco

时间:2019-05-09 09:21:34

标签: gradle jacoco gradle-plugin gradle-kotlin-dsl

我正在尝试将Jacoco配置为从分析中排除某些类,但找不到任何有效的示例:(

我发现一些afterEvaluate的样品,但没有成功

2 个答案:

答案 0 :(得分:1)

src/main/java/org/example/A.java

package org.example;

class A {
}

src/main/java/org/example/B.java

package org.example;

class B {
}

src/test/java/org/example/ExampleTest.java

package org.example;

public class ExampleTest {
  @org.junit.Test
  public void test() {
    new A();
    new B();
  }
}

build.gradle.kts

plugins {
  java
  jacoco
}

repositories {
  mavenCentral()
}

dependencies {
  testCompile("junit:junit:4.12")
}

使用Gradle 5.4.1执行gradle test jacocoTestReport会产生以下报告

report

添加到build.gradle.kts

之后
tasks.withType<JacocoReport> {
  classDirectories.setFrom(
    sourceSets.main.get().output.asFileTree.matching {
      exclude("org/example/B.class")
    }
  )
}

执行同一命令会产生以下报告

report after exclusion

答案 1 :(得分:1)

只需添加到@Godin的出色答案中即可:

@Godin解释的方式,您必须运行MainMenu,这还不错,但是如果您想让jacoco在仅运行gradle test jacocoTestReport的情况下运行,请将其添加到build.gralde中。 kts:

gradle test