在 Android 和 gradle 上使用 Jacoco 生成覆盖率报告时如何排除测试

How to exlude tests when generating coverage reports using Jacoco on Android with gradle

我想要 运行 单个 Gradle 命令生成覆盖率报告以及 运行 一组特定的测试,而不是包中的每个测试。在这种情况下,我想生成关于我的仪器测试的报告,而不是我的 UI 测试。

我已经设置了 Jacoco,这样我就可以 运行 Gradle 命令 ./gradlew create<package-name>DebugAndroidTestCoverageReport 到 运行 我在 androidTest 文件夹中的所有测试。

我已经尝试 ./gradlew create<package-name>DebugAndroidTestCoverageReport --tests "com.myproject.test.*" 只 运行 位于 test 包中的测试,但是这个 returns 错误 Unknown command-line option '--tests'.

使用 Gradle 命令 test --tests "com.myproject.test.*" 工作正常并且 运行 指定的测试,但不生成覆盖率报告。

有没有一种方法可以在生成覆盖率报告的同时进行测试过滤?

经过一番搜索,我偶然发现了这个问题 ,它给了我答案。

为了按包过滤测试用例,您可以使用

./gradlew create<package-name>DebugAndroidTestCoverageReport -Pandroid.testInstrumentationRunnerArguments.package=com.example.test

此命令将仅针对指定的测试生成覆盖率报告。