我有一个库, 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.xmltestBuildType "debug"结合使用。

关于android - 如何只为运行测试设置另一个AndroidManifest.xml,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54223760/

10-10 23:54