如何从 Jacoco 报告中排除所有 Jetpack Compose 的预览功能?

Ely*_*lye 6 android code-coverage jacoco build.gradle android-jetpack-compose

当我们运行 Jetpack Compose 函数的 Jacoco 代码覆盖率时,我喜欢排除所有预览函数。

我可以使用

@Retention(AnnotationRetention.RUNTIME)
@Target(AnnotationTarget.FUNCTION)
internal annotation class ExcludeFromJacocoGeneratedReport
Run Code Online (Sandbox Code Playgroud)

然后对于我想从报告中排除的函数,我用它进行注释

@ExcludeFromJacocoGeneratedReport
@Preview(
    name = "Name"
)
@Composable
private fun MyComposePreview() {
    // ... function content
}
Run Code Online (Sandbox Code Playgroud)

这有效。但我必须将注释添加到我的所有预览功能中。我希望我可以在 build.gradle 文件中排除它们。

有办法这样做吗?

mto*_*nig 1

Preview 的文档说它可以应用于:

注释类,然后可用于注释 @Composable 方法或其他注释类,然后将其视为使用该预览间接注释。

所以我想您可以创建一个注释“PreviewExludedFromJacoco”,并用预览进行注释。这并不完全是您所要求的,但它允许您为每个预览功能只有一个注释。