Как запустить код только один раз при использовании Android Test Orchestrator? - PullRequest
0 голосов
/ 06 марта 2020

Я пишу автоматизированные тесты для приложения Android и настроил их для публикации результатов в TestRail. Я хочу перейти на Android Test Orchestrator по двум причинам:

  1. Я хотел бы очистить данные приложения перед каждым тестом, чтобы они не мешали друг другу. Например, некоторые тесты, в которых предполагается, что пустой список наблюдения завершится неудачей, будут добавлены видео в список во время других тестов. Я могу установить параметр clearPackageData в файле Gradle, но для этого требуется Android Test Orchestrator.

  2. Некоторые нестабильные тесты не просто не проходят, а фактически приводят к взлому приложения sh. Это завершает процесс инструментирования и предотвращает запуск оставшихся тестов.

Однако есть проблема: мой код для создания нового запуска в TestRail должен выполняться только один раз. При использовании программы запуска по умолчанию следующее работает без проблем:

private static boolean initialized = false;

@BeforeClass
public static void init() {
    if (!initialized) {
        // set up TestRail
        initialized = true;
    }
}

Однако код выполняется перед каждым тестом, когда я использую Android Test Orchestrator. Это создает тестовый прогон для каждого теста вместо одного прогона, содержащего все результаты. Я потратил много часов на работу, удаляя сотни лишних прогонов, каждый из которых содержит только один результат!

Поэтому мой вопрос: как мне убедиться, что приведенный выше код выполняется только один раз при использовании Android Test Orchestrator

...