我想将布局xml文件添加到我的curve
文件夹中,仅用于测试。
我将tickSubdivide
文件夹添加到androidTest
并尝试向其添加布局文件。但它为res/layout
androidTest
不知何故,该项目无法将其识别为有效的布局文件。
答案 0 :(得分:9)
将xml资源添加到androidTest
非常棘手。
Android Instrumentation测试创建另一个APK以针对原始应用程序运行测试。虽然您可以从主应用程序访问Context
和对象,但无法修改应用程序生成的APK文件。
这意味着您无法通过androidTest
文件夹中的测试将其他布局xml添加到原始应用程序中。
或者,
buildType
的{{1}}。espresso
文件夹,您可以在其中放置要添加的任何Java或Android资源。
espresso
。 AndroidManifest
您的testBuildType 'espresso'
应如下所示:
build.gradle
当您围绕该风格运行espresso测试时,您将可以访问您添加的其他布局xml文件。
应该是这样的:
答案 1 :(得分:4)
这很简单!通常,您应该将资源放在src/androidTest/res
文件夹下。那就是!然后,您可以在src/androidTest/java
文件中使用它。是的,您无法在生产APK中使用测试布局,但您可以在测试APK中使用测试布局。
有些问题可能让您感到困惑。例如,自动完成功能并不常见,但无论如何,它都可以构建并运行。
最近我写了custom control for masked EditText所以我不想把任何活动放到库中,但我确实希望有一个活动来检查视图,我确实希望从XML中扩展它。您可以在github页面上看到整个代码,这里有一些关键时刻:
$ tree androidTest/
androidTest/
├── AndroidManifest.xml
├── java
│ └── ru
│ └── egslava
│ └── lib_phone
│ ├── MainActivityTest.java
│ ├── TestActivity.java
│ └── actions
│ ├── HintViewAction.java
│ ├── KeepHintViewAction.java
│ └── SetTextViewAction.java
└── res
├── layout
│ └── activity_main.xml
└── values
└── styles.xml
所以你可以看到,在androidTest下,有一个单独的项目,它有自己的清单,可以注册Activity等等:-)我会分享更多的文件,但它只是一个项目,没有更多,你总是可以查找链接。
我唯一要警告你的是,你应该准备好Android Studio会告诉你你的项目包含错误,即使这不是真的:-)祝你好运!
答案 2 :(得分:0)
无法发表评论,但想进一步添加到@Slava的答案中。如果一定有人可以将其添加为评论。
尝试使用该问题的可接受答案来抑制皮棉错误。 Android Studio Remove lint error