java如何在使用Gradle时忽略Jacoco中的内部静态类
我知道如何忽略在自己的.java
文件中定义的类,但不知道如何忽略内部类
例如,我有嵌套类B的类A:
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*"
])
}))
}
}
($
必须转义,而在post中没有必要,因为我使用Gradle时他使用Maven)
那么,我怎么能忽略这个内部类呢
# 1 楼答案
经过几次尝试和失败,我终于找到了答案。似乎命名模式遵循另一篇文章中提到的编译Java类命名约定,并且不需要外部类和内部类之间的
.
。所以,它应该像A$B
。而且,可能有一些.class
干扰(我猜),所以我添加了A$B*
(对于其他正常类,不需要最后一个*
)因此,它变成:
我希望有一些关于这种排除模式的文档。现在还没有