Я пишу автоматизированные тесты для приложения Android и настроил их для публикации результатов в TestRail. Я хочу перейти на Android Test Orchestrator по двум причинам:
Я хотел бы очистить данные приложения перед каждым тестом, чтобы они не мешали друг другу. Например, некоторые тесты, в которых предполагается, что пустой список наблюдения завершится неудачей, будут добавлены видео в список во время других тестов. Я могу установить параметр clearPackageData
в файле Gradle, но для этого требуется Android Test Orchestrator.
Некоторые нестабильные тесты не просто не проходят, а фактически приводят к взлому приложения 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