我知道如何忽略在其自己的.java
文件中定义的类,但不知道如何忽略内部类。
例如,我有A类和B类嵌套:
class A {
...
static class B {
...
}
}
jacocoTestReport
继续检查覆盖范围,当我想使用此语法忽略jacoco.gradle
文件中的覆盖范围(从本文中获悉:How to ignore inner/nested classes with JaCoCo?):([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*"
])
}))
}
}
([$
必须转义,而在帖子中则不需要,因为当我使用Gradle时他使用Maven)
所以,如何忽略这个内部类?
最后,我通过几次尝试都找到了答案。就像在另一篇文章中提到的那样,命名模式似乎遵循compiled Java classes命名约定,并且将不需要外部类和内部类之间的.
。因此,它应该像A$B
。而且,可能会有一些.class
干扰(我的猜测),所以我添加了A$B*
(对于其他普通类,不需要最后一个*
)。
它变成:
"com/example/xxx/A\$B*"
我希望有一些有关这种排除模式的文档。还没有。