如何在运行测试时更改android.permission设置

时间:2014-08-13 01:06:03

标签: android testing android-gradle

问题

如果第一方库已提供权限,我正在使用使用地理位置的第三方库。我想测试一下这个行为,但无法发送我的应用程序w /清单中设置的权限(b / c然后它不是可选的)。

无论如何,只有在我正在运行测试时设置<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

详细

我正在使用gradle构建工具com.android.tools.build:gradle:0.12.2并遵循androidTest目录约定。我的项目看起来像这样:

tree src -L 3 src ├── androidTest │   ├── java │   │   └── com │   └── resources └── main ├── AndroidManifest.xml └── java └── com

我尝试在androidTest文件夹中添加第二个清单(我将软件包更新为:package =“com.myapp.test”),但地理位置权限不会生效。

我考虑过切换到robolectric,但宁愿只是短期使用仪器测试。请告知这是否会使这更容易。

1 个答案:

答案 0 :(得分:4)

我找到了一个不错的解决方案(不是最干净的IMO):

将此添加到您的<appname>/build.gradle

android {
  ...
  sourceSets {
    debug {
      manifest.srcFile 'src/androidTest/AndroidManifest.xml'
    }
  }
  ...
}

然后,当然,使用您所需的权限在src/androidTest/中创建 AndroidManifest.xml 文件。
我从Android issue tracker获取此信息。