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'
}
}
Ответы
Ответ 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