Как добавить переменную среды testInstrumentation для testlab в Firebase? - PullRequest
0 голосов
/ 14 ноября 2018

Если я собираюсь запустить эспрессо-тест локально и передать переменную окружения я могу сделать это добавление

defaultConfig {
 testInstrumentationRunnerArgument 'USERNAME' 'David'
}

в файл build.gradle

тогда я могу вызвать эту переменную по

InstrumentationRegistry.getArguments().getString("USERNAME")

но когда я запускаю это на тестовой базе Firebase Аргумент InstrumentationRunner не работает

1 Ответ

0 голосов
/ 14 ноября 2018

Это не поддерживается в тестовой лаборатории.

Если вам действительно нужно это сделать, есть обходной путь, переопределяющий бегун теста и использующий «переменные среды» бегуна теста для передачи этих пар ключ-значение.

Переопределить тест-бегун:

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"
}

Запустите тестовый запуск в Firebase с помощью приложения командной строки gcloud. Вот где вы передаете свои аргументы:

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
...