使用 Gradle 时如何忽略 Jacoco 中的内部静态 类
How to ignore inner static classes in Jacoco when using Gradle
我知道如何忽略在他们自己的 .java
文件中定义的 classes,但不知道如何忽略内部 classes。
例如,我有 class A 嵌套 class B:
class A {
...
static class B {
...
}
}
jacocoTestReport
当我想用这种语法在 jacoco.gradle
文件中忽略它们时,会不断检查覆盖率(从 post: 中学习):(setFrom
部分用于 Gradle 的更高版本,其中 classDirectories = files()
已弃用)
apply plugin: "jacoco"
jacoco {
toolVersion = "0.8.3"
}
jacocoTestReport {
afterEvaluate {
classDirectories.setFrom(files(classDirectories.files.collect {
fileTree(dir: it,
exclude: [
"com/example/xxx/*",
"com/example/xxx/A$.*B*"
])
}))
}
}
($
必须转义,而在post中就不需要了,因为我用Gradle他用的是Maven)
那么,我怎么能忽略这个内在的class呢?
经过几次尝试和失败,我终于找到了答案。似乎命名模式遵循 compiled Java classes 命名约定 ,如其他 post 所述,而 不会需要在外部 class 和内部 class 之间的 .
。所以,它应该像 A$B
。而且,可能有一些 .class
干扰(我的猜测),所以我添加了 A$B*
(对于其他正常的 classes,不需要最后的 *
)。
所以变成:
"com/example/xxx/A$B*"
我希望有一些关于这种排除模式的文档。还没有。
我知道如何忽略在他们自己的 .java
文件中定义的 classes,但不知道如何忽略内部 classes。
例如,我有 class A 嵌套 class B:
class A {
...
static class B {
...
}
}
jacocoTestReport
当我想用这种语法在 jacoco.gradle
文件中忽略它们时,会不断检查覆盖率(从 post: setFrom
部分用于 Gradle 的更高版本,其中 classDirectories = files()
已弃用)
apply plugin: "jacoco"
jacoco {
toolVersion = "0.8.3"
}
jacocoTestReport {
afterEvaluate {
classDirectories.setFrom(files(classDirectories.files.collect {
fileTree(dir: it,
exclude: [
"com/example/xxx/*",
"com/example/xxx/A$.*B*"
])
}))
}
}
($
必须转义,而在post中就不需要了,因为我用Gradle他用的是Maven)
那么,我怎么能忽略这个内在的class呢?
经过几次尝试和失败,我终于找到了答案。似乎命名模式遵循 compiled Java classes 命名约定 ,如其他 post 所述,而 不会需要在外部 class 和内部 class 之间的 .
。所以,它应该像 A$B
。而且,可能有一些 .class
干扰(我的猜测),所以我添加了 A$B*
(对于其他正常的 classes,不需要最后的 *
)。
所以变成:
"com/example/xxx/A$B*"
我希望有一些关于这种排除模式的文档。还没有。