【发布时间】:2023-03-08 19:43:01
【问题描述】:
我的项目有 2 组不同的测试。一组仅使用默认 AndroidJUnitRunner 运行,另一组必须使用自定义实现 TestRunner extends MonitoringInstrumentation 运行。
目前我每次需要运行另一组测试时都通过编辑build.gradle 来切换testInstrumentationRunner:
android{
defaultConfig {
//testInstrumentationRunner "my.custom.TestRunner"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
}
我知道口味可以有自己的testInstrumentationRunner,但我当前的应用程序已经有 2 个flavourDimensions。使用风味实际上是为了拥有不同版本的应用程序。我需要 2 个版本的测试应用程序,都使用不同的 testInstrumentationRunners 测试同一个应用程序。
我试图通过迭代所有测试变体来更改testInstrumentationRunner。实际上有多个testInstrumentationRunner 属性:
android.testVariants.all { TestVariant variant ->
//readonly
variant.variantData.variantConfiguration.instrumentationRunner
variant.variantData.variantConfiguration.defaultConfig.testInstrumentationRunner
}
但只要调用android.testVariants,构建就会被配置,并且所有更改都不会反映在构建中。
如何动态更改 testInstrumentationRunner(来自 gradle 插件)?
我希望有 2 个不同的 gradle 任务,每个任务使用不同的 testInstrumentationRunner,但测试相同的变体。因为我打算创建一个 gradle 插件,所以解决方案也应该作为插件工作。
【问题讨论】:
标签: android gradle android-gradle-plugin android-testing