gpt4 book ai didi

android - 如何在 android studio 中为 android 库运行仪器测试?

转载 作者:行者123 更新时间:2023-11-29 00:10:00 35 4
gpt4 key购买 nike

文档 ( http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Testing-Android-Libraries ) 说它只会自动生成应用程序并使用库作为依赖项运行,但它没有告诉您将调用什么包装应用程序 Activity ,这意味着您可以' t 使用仪器类(例如 http://developer.android.com/reference/android/test/ActivityTestCase.html )对其进行测试。由于他们需要知道所讨论的 Activity ,以初始化 super 构造函数。

有谁知道在 android studio 中使用 gradle 进行此类测试的正确方法吗?

最佳答案

好的,我有一个可能的解决方案。这是否是“正确”的方法,我会看看人们怎么说。

理论上没有什么能阻止我在某处创建一个“TestActivity.java”类

/src/androidTest/java/com....bananas/TestActivity.java

这是真的。您可以在位于 androidTest 下的潜在 ActivityTest.java 中引用它。

public class ActivityTest extends ActivityInstrumentationTestCase2<TestActivity> {

public ActivityTest() {
super(TestActivity.class);
}
...

但是有一个小故障/问题。如果 TestActivity 需要引用任何字符串/常量 (例如 res/layout/activity_test.xml),它们不能/src/androidTest/res/layout 下/。这个文件夹在构建过程中被莫名其妙地忽略了。尽管它被列为 gradle 构建的 res 源文件夹(我通过 gradle dumping (println android.sourceSets.androidTest.dump()) 进行了检查,但在构建时找不到内容 &运行测试......你会得到:

No resource found that matches the given name ...

因此,这意味着您可以根据需要使用自定义 Activity 测试库,而无需启动完整的单独测试应用程序,但库的 res 文件夹中会变得有些困惑。 (虽然这些可以从最终的 .aar 中手动排除)。

如果有人能解释这个奇怪的陷阱,或者证明我是错的,那就太好了,但除此之外,这是行得通的。 :)


编辑/更新

要添加的一件事是确保 /src/androidTest 下的 AndroidManifest.xml 包含如下内容:

<application>
<activity
android:name=".TestActivity"
android:label="@string/title_activity_test" >
</activity>
</application>

ActivityInstrumentationTestCase2 中的 getActivity() 如果省略,将抛出错误: java.lang.RuntimeException: Unable to resolve activity for: Intent { act=android.intent.action.MAIN 。 ..

关于android - 如何在 android studio 中为 android 库运行仪器测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31039257/

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