Подтвердить что ты не робот

AndroidManifest.xml для Gradle instrumentTest

Есть ли способ указать дополнительный файл AndroidManifest.xml для тестового приложения gradle? Мне нужно указать дополнительные разрешения и действия для моих модульных тестов.

UPD: Я попытался добавить раздел instrumnetTest в файл build.gradle, но это не помогло, и я все равно получаю Unable to resolve activity for: Intent error

sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['src']
        resources.srcDirs = ['src']
        aidl.srcDirs = ['src']
        renderscript.srcDirs = ['src']
        res.srcDirs = ['res']
        assets.srcDirs = ['assets']
    }
    instrumentTest {
        manifest.srcFile 'src/instrumentTest/AndroidManifest.xml'
        java.srcDir 'src/instrumentTest/Java'
    }
}
4b9b3361

Ответ 1

Вы можете указать специальный AndroidManifest.xml для Android Tests (ранее называемый Instrument Tests), если вы можете использовать 0.13.0 (или более позднюю) версию плагина Android Gradle.

Просто поместите файл в src/androidTest/AndroidManifest.xml - слияние манифеста позаботится о файле при запуске тестовой задачи Gradle.

Вот пример официальной документации gradle -samples-0.13.zip\ gradle -samples-0.13\androidManifestInTest - как можно видеть нет специальной конфигурации, необходимой для включения тестового манифеста.

Ответ 2

Я сделал отдельный проект "android-library" для тестирования и добавил все необходимые компоненты (Activities, Services и т.д.) в. /src/main/AndroidManifest.xml

Согласно документации http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Testing-Android-Libraries

манифест библиотеки сливается в манифест теста app (как в случае любого проекта, ссылающегося на эту библиотеку).

Ответ 3

Да, вы можете в своем build.gradle при определении исходных наборов указать путь к вашему манифесту:

 sourceSets {
        main {
            manifest.srcFile 'src/main/AndroidManifest.xml'
            java.srcDir 'src/main/src'
            res.srcDir 'src/main/res'
            assets.srcDir 'src/main/assets'
            resources.srcDir 'src/main/src'
            aidl.srcDir 'src/main/src'
        }

 instrumentTest {
            manifest.srcFile 'src/instrumentTest/AndroidManifest.xml'
            java.srcDir 'src/instrumentTest/src'
            res.srcDir 'src/instrumentTest/res'
            assets.srcDir 'src/instrumentTest/assets'
            resources.srcDir 'src/instrumentTest/src'
            aidl.srcDir 'src/instrumentTest/src'
        }
}

вы можете проверить эту документацию: http://tools.android.com/tech-docs/new-build-system/user-guide