yod*_*mad 6 gradle jacoco gradle-plugin gradle-kotlin-dsl
我正在尝试配置 Jacoco 以从分析中排除某些类,但找不到任何工作示例:(
我找到了一些样本,afterEvaluate但没有成功
src/main/java/org/example/A.java:
package org.example;
class A {
}
Run Code Online (Sandbox Code Playgroud)
src/main/java/org/example/B.java:
package org.example;
class B {
}
Run Code Online (Sandbox Code Playgroud)
src/test/java/org/example/ExampleTest.java:
package org.example;
public class ExampleTest {
@org.junit.Test
public void test() {
new A();
new B();
}
}
Run Code Online (Sandbox Code Playgroud)
build.gradle.kts:
plugins {
java
jacoco
}
repositories {
mavenCentral()
}
dependencies {
testCompile("junit:junit:4.12")
}
Run Code Online (Sandbox Code Playgroud)
使用 Gradle 5.4.1 执行gradle test jacocoTestReport产生以下报告
除了之后 build.gradle.kts
tasks.withType<JacocoReport> {
classDirectories.setFrom(
sourceSets.main.get().output.asFileTree.matching {
exclude("org/example/B.class")
}
)
}
Run Code Online (Sandbox Code Playgroud)
执行相同的命令会产生以下报告
只是为了添加到@Godin 的精彩答案中:
@Godin 解释它的方式,你必须运行 gradle test jacocoTestReport这还不错,但是如果你想让 jacoco 在你运行时运行,只需gradle test将它添加到你的 build.gralde.kts 中:
tasks.test {
finalizedBy("jacocoTestReport")
doLast {
println("View code coverage at:")
println("file://$buildDir/reports/jacoco/test/html/index.html")
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
我已经设法排除这种方式:
tasks.jacocoTestReport {
classDirectories.setFrom(
files(classDirectories.files.map {
fileTree(it) {
exclude(
"com/example/integration/**",
"com/example/application/*Ext*"
)
}
})
)
}
Run Code Online (Sandbox Code Playgroud)
取自这里
| 归档时间: |
|
| 查看次数: |
4718 次 |
| 最近记录: |