有没有办法为gradle测试应用指定额外的AndroidManifest.xml
文件?我需要它来为我的单元测试指定其他权限和活动。
UPD:
我已尝试在instrumnetTest
文件中添加build.gradle
部分,但它没有帮助,我仍然遇到Unable to resolve activity for: Intent
错误
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'
}
}
答案 0 :(得分:10)
如果您能够使用Android Gradle插件的 0.13.0 (或更高版本)版本,则可以为Android测试(以前称为仪器测试)指定特殊AndroidManifest.xml
。
只需将文件放在src/androidTest/AndroidManifest.xml
- 清单合并将在您运行gradle测试任务时处理该文件。
官方文档"gradle-samples-0.13.zip\gradle-samples-0.13\androidManifestInTest"中有一个示例 - 正如人们可以看到的那样,不需要特殊配置来包含测试清单。
答案 1 :(得分:0)
我为测试目的制作了单独的'android-library'项目,并将所有必需的组件(活动,服务等)添加到./src/main/AndroidManifest.xml
根据文件http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Testing-Android-Libraries
库的清单合并到测试的清单中 app(引用此库的任何项目的情况)。
答案 2 :(得分:-2)
是的,您可以在build.Set中定义源集时,可以指定清单的路径:
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