我有一个库, list 可能最简单<manifest package="com.xxx.xxx.android" />
但是该库需要从Android Manifest获取两个元数据值才能正常工作,因此要运行我添加到src/test/AndroidManifest.xml
的以下代码的测试,请执行以下操作:
<manifest package="com.xxx.xxx.android"
xmlns:android="http://schemas.android.com/apk/res/android">
<application>
<meta-data
android:name="var1"
android:value="value1"/>
<meta-data
android:name="var2"
android:value="value2"/>
</application>
</manifest>
从documentation中读取后,我必须在
AndroidManifest.xml
中设置新的gradle
路径。我正在尝试这样做:android {
...
buildTypes {
debug {
testCoverageEnabled true
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
String sharedTestDir = 'src/sharedTest/java'
String testManifest = 'src/test/AndroidManifest.xml'
test {
java.srcDir sharedTestDir
manifest.srcFile testManifest
}
androidTest {
java.srcDir sharedTestDir
manifest.srcFile testManifest
}
}
testOptions.unitTests.includeAndroidResources true
}
但这不起作用,并且我无法在测试中获取元数据。仅当我将
manifest.srcFile
设置为main
而不是test
和/或androidTest
时,它才有效。 最佳答案
尝试将src/debug/AndroidManifest.xml
与testBuildType "debug"
结合使用。
关于android - 如何只为运行测试设置另一个AndroidManifest.xml,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54223760/