如何为Firebase TestLab添加testInstrumentation环境变量?

时间:2018-11-14 07:34:43

标签: android firebase android-espresso android-testing firebase-test-lab

如果我要在本地运行espresso测试并传递环境变量 我可以做到这一点 添加

defaultConfig {
 testInstrumentationRunnerArgument 'USERNAME' 'David'
}

build.gradle文件

然后我可以通过

调用此变量
InstrumentationRegistry.getArguments().getString("USERNAME")

但是当我在firebase testlab上运行它时 instrumentationrunner参数不起作用

1 个答案:

答案 0 :(得分:2)

测试实验室不支持此功能。

如果您确实需要这样做,可以通过覆盖测试运行程序并使用测试运行程序的“环境变量”来传递这些键值对来解决。

覆盖测试运行器:

public class MyTestRunner extends AndroidJUnitRunner {

    public static String USERNAME;

    @Override
    public void onCreate(Bundle arguments) {
        super.onCreate(arguments);

        USERNAME = arguments.getString("USERNAME");
    }
}

MyTestRunner文件中使用build.gradle

defaultConfig {
    testInstrumentationRunner "com.example.myapp.MyTestRunner"
}

使用gcloud命令行应用程序在Firebase中开始测试运行。这是您传递参数的地方:

gcloud firebase test android run \
    --type instrumentation \
    --app debug/app-debug.apk \
    --test androidTest/debug/app-debug-androidTest.apk \
    --environment-variables "USERNAME=david" \
    --device model=walleye,version=28