android - 为androidTest添加布局资源

标签 android resources android-resources android-testing

我想将布局 xml 文件添加到我的 androidTest 文件夹中,仅用于测试。

我将 res/layout 文件夹添加到 androidTest 并尝试向其中添加布局文件。但它给 xmlns:android="http://schemas.android.com/apk/res/android"

错误 URI is not registered

不知何故,项目无法将其识别为有效的布局文件。

最佳答案

androidTest添加xml资源是有技巧的。

Android Instrumentation 测试会创建另一个 APK 来针对您的原始应用程序运行测试。虽然您可以从主应用程序访问您的 Context 和对象,但您不能修改应用程序生成的 APK 文件。

这意味着您不能将来自 androidTest 文件夹中的测试的额外布局 xml 放入您的原始应用程序。

解决方案:

或者,

  • 您可以创建一个名为 espressobuildType
  • 然后,创建一个 espresso 文件夹,您可以在其中放置您要添加的任何 java 或 Android 资源。
    • 您甚至可以在那里修改您的 AndroidManifest
  • 然后,使用 testBuildType 'espresso'

您的 build.gradle 应该如下所示:

android {
  testBuildType 'espresso'

  buildTypes {
    espresso.initWith(buildTypes.release)
  }
}

dependencies {
  espressoCompile 'somedependency' // you can even have special dependencies
}

当您围绕该口味运行浓缩咖啡测试时,您将可以访问您添加的其他布局 xml 文件。

应该是这样的:

enter image description here

关于android - 为androidTest添加布局资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40715100/

相关文章:

java - Android File.renameTo 在我测试的 Sony 设备中总是返回 false

PHP将数组转换为资源

Android 访问 Activity 之外的资源

Android 资源选择布局和值不一致

android - 在 android 中找不到我的 r.java 文件

android - 如何将历史 Google Analytics 数据导入 Firebase Analytics

java - 从文本文件读取无法正常工作

c# - 如何在Visual Studio中为不同的编译宏设置不同的资源?

java - 从java项目中的资源文件夹中获取所有文件名

android - 将OpenCV中的Mat从MLkit中传递给Facedetector