一种在多个android测试模块之间共享代码的方法
我想实现这样的目标:一种在多个android测试模块之间共享代码的方法,android,android-gradle-plugin,android-testing,android-instrumentation,Android,Android Gradle Plugin,Android Testing,Android Instrumentation,我想实现这样的目标: [ComponentTestsModule] com.android.test [FunctionalTestsModule] com.android.test both depends on -> [TestLibraryModule] ? which depends on -> [AppModule] com.android.application 安卓Gradle插件3.0+有什么方法可以做到这一点吗 为什么我需要多个测试模块? 我希望针对不同类
[ComponentTestsModule] com.android.test
[FunctionalTestsModule] com.android.test
both depends on
-> [TestLibraryModule] ?
which depends on
-> [AppModule] com.android.application
安卓Gradle插件3.0+有什么方法可以做到这一点吗
为什么我需要多个测试模块?
我希望针对不同类型的测试使用不同的测试运行程序,也针对不同的变体。
它现在正在使用androidTest
下的单个代码库,但在自定义测试运行程序中使用丑陋的开关
为什么我需要一个测试库模块?
我想在不同类型的测试之间共享相同的页面对象,也许还有一些实用程序代码。
问题是:页面对象必须能够访问应用程序的R类(定位器:R.id.*)
除了com.android.test
,我所知道的所有模块类型都不能依赖于APK生成模块,但我不能依赖com.android.test
和另一个com.android.test
我希望不同类型的测试有不同的测试人员
要使用特定的测试运行程序运行测试类,请使用@RunWith
注释
还针对不同的变体
要针对特定的变体,请在
app/src/androidTestVariantName
中为插入指令的测试创建测试,或在app/src/testVariantName
中为单元测试创建测试。我最近遇到了这个问题,只想分享我的解决方案,以防有人需要它
到目前为止我所做的(我想这不是一个完美的解决方案,但至少它是有效的)
模块
,名为测试库或类似的东西模块
仅将与测试相关的内容(如您希望在模块之间共享的代码)放入普通包中,而不是放入测试包/文件夹中模块导入内容
testImplementation项目(“:testing\u base”)
希望它能帮助别人,快乐测试 你找到解决办法了吗?没有,还是没有线索