AndroidTest 不使用测试应用

标签 android android-gradle-plugin android-testing

您好,当我在 androidTest list 文件中重写应用程序时,它不起作用。这是我在 androidTest 文件夹中的 AndroidManifest.xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="ru.app"
    android:installLocation="auto">

  <application
      tools:replace="android:name"
      android:name=".app.ApplicationAndroidTest" />

</manifest>

这是 main 文件夹中原始 AndroidManifest.xml 的一部分:

<application
        android:name=".app.Application"
        android:allowBackup="true"
        android:hardwareAccelerated="true"
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:largeHeap="true"
        android:theme="@style/Theme">
...
</application>

事实上我调试了它,并从被测 Activity 的断点调用 getApplication(),它返回 .app.Application 而不是 ApplicationAndroidTest 实例。

您知道为什么忽略来自 androidTest 的 android list 文件吗?

最佳答案

作为解决方法,我使用了自定义测试运行器类:

public class UiTestsRunner extends AndroidJUnitRunner {

  @Override
  @NonNull
  public Application newApplication(@NonNull ClassLoader cl, @NonNull String className, @NonNull Context context)
          throws InstantiationException, IllegalAccessException, ClassNotFoundException {
    return Instrumentation.newApplication(ApplicationAndroidTest.class, context);
  }
}

它对我来说很好。希望对某人有所帮助。

关于AndroidTest 不使用测试应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36935756/

相关文章:

android - 错误 :Execution failed for task ':app:processDebugGoogleServices' . > 请修复版本冲突

android - 每个 ABI 的不同库搜索路径

android - 如何为 firebase teSTLab 添加 testInstrumentation 环境变量?

android-espresso - 连续调用 MockWebServer 进行测试

java - 抽象还是封装?

Android 波纹效果不显示高程

android - 错误 :Unexpected lock protocol found in lock file. 预期 3,找到 0。

Android 单元测试包路径错误

Android - 如何制作结合位图的背景图案?

android - 从椭圆曲线点的 x 和 y 值生成 PublicKey