在将JaCoCo与Gradle和Kotlin一起使用时,如何忽略方法?
我正试图用Gradle和Kotlin建立JaCoCo,我的问题是我有很多在将JaCoCo与Gradle和Kotlin一起使用时,如何忽略方法?,gradle,kotlin,jacoco,Gradle,Kotlin,Jacoco,我正试图用Gradle和Kotlin建立JaCoCo,我的问题是我有很多数据类e,它们由编译器生成equals、hashCode和toString方法 我在文档中读到,有了JaCoCo,我可以忽略方法,但JaCoCo的Gradle插件似乎只支持排除s。我该如何解决这个问题 我试过这个: test { jacoco { exclude("*equals", "*hashCode") } } 但在这些方法旁边,我仍然可以看到0% 我做错了什么?比如在公告中说:你唯一
数据类
e,它们由编译器生成equals
、hashCode
和toString
方法
我在文档中读到,有了JaCoCo,我可以忽略方法,但JaCoCo的Gradle插件似乎只支持排除s。我该如何解决这个问题
我试过这个:
test {
jacoco {
exclude("*equals", "*hashCode")
}
}
但在这些方法旁边,我仍然可以看到0%
我做错了什么?比如在公告中说:你唯一需要做的就是确保Gradle使用正确的JaCoCo版本。到目前为止,在JaCoCo中实现的所有过滤器都是无条件启用的,并在生成报告期间进行。在同一个公告中,你可以看到 使用Gradle JaCoCo插件,您可以使用“toolVersion”为“JacoReport”任务选择运行时和版本 默认版本取决于Gradle的版本,例如,根据0.8.2中添加的Kotlin过滤器
因此给定
src/main/kotlin/DataClass.kt
data class DataClass(var x)
class Tests {
@org.junit.Test
fun test_data_class() {
DataClass(42)
}
}
src/test/kotlin/Tests.kt
data class DataClass(var x)
class Tests {
@org.junit.Test
fun test_data_class() {
DataClass(42)
}
}
和build.gradle
buildscript {
ext.kotlin_version = "1.2.41"
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
apply plugin: "kotlin"
apply plugin: "jacoco"
repositories {
mavenCentral()
mavenLocal()
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
testCompile "junit:junit:4.12"
}
tasks["jacocoTestReport"].dependsOn("test")
使用gradle 4.7执行gradle JacoTestReport
后,您将看到
加上
jacoco {
toolVersion = '0.8.2'
}
test {
jacoco {
exclude("Tests.class")
}
}
将产生相同的梯度和相同的命令
另外,我相信在您的尝试中,
排除
指,因为没有排除-作为添加的证明
jacoco {
toolVersion = '0.8.2'
}
test {
jacoco {
exclude("Tests.class")
}
}
与上述示例相同,将导致零测试