我要转到Gradle plugin for Android并重构一些集成测试。其中一些测试的代码如下:
@Override
protected void setUp() throws Exception {
super.setUp();
_client = new Client("https://test02.server.com", "password");
}
我想将 URL 和密码外部化,以便可以从 Jenkins 构建中驱动它们。我不完全确定该怎么做。所有测试都将使用 Gradle Android 插件运行。
最佳答案
好吧,我不能代表 Jenkins 部分发言。
忽略 Jenkins,这里有一些适用于 Android 的 Gradle 方法:
将这些值放入资源中,例如字符串资源,并在不同的构建类型中为不同类型的测试提供这些资源的替换版本。您可以在 this sample project 中看到这一点,其中我有不同版本的字符串资源用于调试与发布,另外还有自定义夹层构建类型。
将这些值放入
BuildConfig
中,并为不同类型的测试提供不同构建类型的替换版本。您可以在 this sample project 中看到这一点,它扩展了前一个,其中通过buildConfigField
指令在build.gradle
文件中添加到BuildConfig
。在此示例中,buildConfigField
中的值是硬编码的,它们可以由环境变量、属性文件等驱动。
关于android - Android 集成/功能测试的外部化配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21092992/