组织androidTest和test之间的共享代码
我正在以gradle项目的形式构建一个android组件。为了在框架的几种配置中测试我的组件UI,我在组织androidTest和test之间的共享代码,android,android-gradle-plugin,android-testing,robolectric,Android,Android Gradle Plugin,Android Testing,Robolectric,我正在以gradle项目的形式构建一个android组件。为了在框架的几种配置中测试我的组件UI,我在androidTest源集中有一个TestActivity,我可以对其进行测试 要澄清文件树,请执行以下操作: src/ androidTest/ java/my.package/ TestActivity.kt ... res/layout/ my_test_activitity.x
androidTest
源集中有一个TestActivity
,我可以对其进行测试
要澄清文件树,请执行以下操作:
src/
androidTest/
java/my.package/
TestActivity.kt
...
res/layout/
my_test_activitity.xml
test/
java/my.package/
MyUnitTests.kt
现在我想开始使用它进行一些单元测试,并从那里测试我的TestActivity
。
有趣的是,当我在MyUnitTests.kt
中设置Robolectric时,Android Studio并没有抱怨:
val activity = Robolectric.setupActivity(TestActivity::class.java) // no error
但是,当我尝试运行单元测试时,gradle向我显示了以下错误:
e: src/test/java/my.package/MyUnitTests.kt: Unresolved reference: TestActivity
我的猜测是,test
源代码集无法访问androidTest
源代码集,尽管androidstudio似乎认为它可以访问
如何修复此问题(使
androidTest
中的类和资源可从test
访问)?在插装测试和单元测试之间共享代码时,这是正确的方法还是有更好的方法?我经常通过创建src/commonTest/java源集来解决这一问题,并通过将以下内容添加到我的gradle文件中,将其公开给插装测试和单元测试:
android {
sourceSets {
String sharedTestDir = 'src/commonTest/java'
test {
java.srcDir sharedTestDir
}
androidTest {
java.srcDir sharedTestDir
}
}
}
这对我不起作用,我是这样试的。它一直告诉我代码不存在exist@LenaBru你能发布一个显示你的目录结构和代码的图片来从你的gradle文件中设置它吗?