如何为Android本地测试与插桩测试配置独立的build.gradle?
只给本地测试配置
useJUnitPlatform()的解决方案 你可以通过两种方式精准控制useJUnitPlatform()仅作用于本地测试(src/test/java下的测试代码),完全不影响插桩测试:
方式一:针对本地测试任务类型配置
直接匹配所有Test类型的任务(这类任务对应本地单元测试),添加JUnit Platform支持:
testOptions { unitTests { includeAndroidResources = true } } // 仅为本地测试启用JUnit Platform tasks.withType(Test) { useJUnitPlatform() }
方式二:按任务名精准匹配
Android Gradle插件会为每个构建变体生成对应的本地测试任务,命名规则是test<BuildVariant>UnitTest(比如testDebugUnitTest),你可以通过任务名来匹配:
testOptions { unitTests { includeAndroidResources = true } } // 仅匹配本地单元测试任务并启用JUnit Platform tasks.matching { task -> task.name.startsWith('test') && task.name.endsWith('UnitTest') }.each { it.useJUnitPlatform() }
关于原配置的说明
其实你原来的unitTests.all配置本身就只作用于本地单元测试——Android Gradle插件里,unitTests对应的就是本地测试,插桩测试有单独的androidTests配置块。如果你之前误以为它会影响插桩测试,可能是混淆了配置块的作用范围。上面两种方式只是让配置更直观、更精准。
内容的提问来源于stack exchange,提问作者Oke Uwechue
相关产品推荐
相关产品推荐

