我正在一个带有应用程序模块和库模块的多模块 Android 项目中工作。如果我简单地添加
apply plugin: 'jacoco'
jacoco {
toolVersion '0.8.7'
}
到build.gradle
每个模块,然后当我从每个模块目录中的命令行运行设备外单元测试时,我看到创建的 .exec 文件build/jacoco/testDebugUnitTest.exec
大小约为 27k 左右。由此生成报告符合我的预期。
如果我添加
buildTypes {
debug {
testCoverageEnabled true
}
}
到每个模块的 build.gradle (这样我以后也可以收集设备上测试的覆盖率)然后当我运行设备外单元测试时,.exec 文件改为在build/outputs/unit_test_code_coverage/debugUnitTest/testDebugUnitTest.exec
.
更重要的是,虽然当我在应用程序模块中运行测试时该文件仍然约为 27k,但当我在同一项目的库模块中运行测试时,它几乎是空的(只有 45 个字节)。
是否有原因 testCoverageEnabled 会干扰库模块的设备外代码覆盖,但不会干扰主应用程序模块?