gpt4 book ai didi

android - 整理androidTest和test之间的共享代码

转载 作者:搜寻专家 更新时间:2023-11-01 08:24:06 25 4
gpt4 key购买 nike

我正在以 gradle 项目的形式构建一个 android 组件。使用 espresso 在多种配置中测试我的组件 UI框架,我在 androidTest 源集中有一个 TestActivity,我可以检测它。

阐明文件树:

src/
androidTest/
java/my.package/
TestActivity.kt
...
res/layout/
my_test_activitity.xml
test/
java/my.package/
MyUnitTests.kt

现在我想开始使用 robolectric对于我的一些单元测试,还可以从那里测试我的 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 源集,即使 Android Studio 似乎认为它有。

我该如何解决这个问题(使 androidTest 中的类和资源可从 test 访问)?在仪器测试和单元测试之间共享代码时,这甚至是正确的方法还是有更好的方法?

最佳答案

我经常通过创建一个 src/commonTest/java 源集来解决这个问题,并通过将以下内容添加到我的 gradle 文件中将其暴露给仪器测试和单元测试:

  android {
sourceSets {
String sharedTestDir = 'src/commonTest/java'
test {
java.srcDir sharedTestDir
}
androidTest {
java.srcDir sharedTestDir
}
}
}

关于android - 整理androidTest和test之间的共享代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47141095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com