Я пытаюсь осквернить тесты, используя Flank с Firebase Test Lab, чтобы ускорить автоматизированное тестирование. Однако я не могу осквернить свои тесты, несмотря на использование параметра max-test-shards
Ссылка: https://github.com/TestArmada/flank
Код:
Запустите test_runner/flank.yml
с фланга, чтобы убедиться, что выполнение Android работает.
cd test_runner/
./gradlew clean build fatJar
java -jar ./build/libs/flank-*.jar firebase test android run
Не происходит никакого шардинга, и тестирование выполняется в одно и то же время, даже после указания max-test-shards
flank.yml:
# - GcloudYml -
## Имя корзины Google Cloud Storage, в которой будут храниться необработанные результаты тестов.
# Results-Bucket: tmp_flank
## Имя уникального объекта Google Cloud Storage в области результатов, в которой будут храниться необработанные результаты испытаний.
## (по умолчанию: временная метка со случайным суффиксом).
# results-dir: tmp
## Включить запись видео во время теста. Включено по умолчанию, используйте --no-record-video, чтобы отключить.
# запись-видео: правда
## Максимальное время выполнения этого теста до его отмены (по умолчанию: 15 м).
## Это не включает время, необходимое для подготовки и очистки целевого устройства.
## Максимально возможное время тестирования составляет 30 м на физических устройствах и 60 м на виртуальных устройствах.
## ЕДИНИЦЫ ВРЕМЕНИ могут быть h, m или s. Если единица не указана, считаются секунды.
# тайм-аут: 30 м
## Вызвать тест асинхронно, не ожидая результатов теста.
# async: false
## Имя истории результатов теста (произвольная строковая метка; по умолчанию: метка приложения из манифеста APK).
## Все тесты, которые используют одно и то же имя истории, будут сгруппированы вместе в консоли Firebase в упорядоченный по времени список истории тестов.
# results-history-name: android-history
## Эксперимент!
## Количество попыток повторного выполнения TestExecution, если по какой-либо причине один или несколько \ n его тестовых случаев не пройдены.
## Максимально допустимое количество повторов равно 10. По умолчанию 0, что означает, что повторов не будет.
# flaky-test-попытки: 0
# - AndroidGcloudYml -
## Путь к двоичному файлу приложения.
## Путь может быть в локальной файловой системе или в облачном хранилище Google с помощью gs: // нотация.
## Пакеты приложений Android указываются как .aab, все остальные файлы считаются APK-файлами.
app: /Users/akanshaverma/test_flank/flank/test_runner/espresso_long.apk
## Путь к двоичному файлу, содержащему инструментальные тесты.
## Указанный путь может быть в локальной файловой системе или в облачном хранилище Google с использованием URL-адреса, начинающегося с gs: //.
test: /Users/akanshaverma/test_flank/flank/test_runner/espresso_long_test.apk
## Автоматически войти в тестовое устройство, используя предварительно настроенную учетную запись Google, перед началом теста.
## Включено по умолчанию, используйте --no-auto-google-login для отключения.
auto-google-login: true
## Каждый ли тест выполняется в своем собственном экземпляре Instrumentation с помощью Android Test Orchestrator
## (по умолчанию: используется Orchestrator). Отключить с помощью --no-use-orchestrator.
## См. https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator
# use-orchestrator: true
## Карта с разделением запятыми, ключ = значение переменных среды и их желаемых значений. Этот флаг повторяется.
## Переменные окружения отражаются как дополнительные параметры для команды am instrument -e KEY1 VALUE1… и
## передан вашему тестовому исполнителю (обычно AndroidJUnitRunner)
# переменные окружения:
# покрытие: есть
# coverFilePath: / sdcard /
# clearPackageData: true
## Список путей, которые будут скопированы из хранилища устройства в назначенную корзину результатов после теста
## завершено. Это должны быть абсолютные пути в / sdcard или / data / local / tmp
# каталоги для извлечения:
# - / sdcard /
## Мониторинг и запись показателей производительности: ЦП, память, использование сети и FPS (только игровой цикл).
## Включено по умолчанию, используйте --no-performance-metrics для отключения.
# показатели производительности: правда
## Полное имя класса Java исполнителя инструментальных тестов ## (по умолчанию: фамилия, извлеченная из манифеста APK).# test-runner-class: com.foo.TestRunner
## Список одного или нескольких фильтров целей тестирования, которые нужно применить (по умолчанию: запустить все цели тестирования).## Каждый целевой фильтр должен быть полностью квалифицирован с указанием имени пакета, имени класса или тестовой аннотации.## Поддерживаемые тестовые фильтры от am instrument -e… включают в себя: ## class, notClass, размер, аннотацию, notAnnotation, package, notPackage, testFile, notTestFile ## См. https://developer.android.com/reference/android/support/test/runner/AndroidJUnitRunner для получения дополнительной информации.# test-target: # - класс com.example.app.ExampleUiTest # testPasses
## Список пар DIMENSION = VALUE, которые определяют целевое устройство для проверки.## Этот флаг может быть повторен для указания нескольких устройств.## Четыре измерения устройства: модель, версия, локаль и ориентация.# устройство: # - модель: NexusLowRes # версия: 28 # локаль: en # ориентация: портрет # - модель: NexusLowRes # версия: 27 устройство: - модель: hero2lte версия: 23 локаль: en ориентация: портрет
flank: # - FlankYml -
## тестовые сегменты - количество групп для разделения набора тестов на ##, установленное в -1, для использования одного фрагмента на тест.по умолчанию: 1 max-test-shards: 10
## время шарда - количество тестов времени в шарде должно занять ## при значении> 0, количество шардов устанавливается динамически на основе времени домаксимальный предел, определенный max-test-shards ## 2 минуты (120), рекомендуется.## default: -1 (не ограничено) # shard-time: -1 shard-time: 2
## повторные тесты - количество раз, чтобы выполнить тесты.## 1 запускает тесты один раз.10 запускает все тесты 10x # repeat-tests: 1
## Путь к облачному хранилищу Google для хранения результатов JUnit XML с последнего запуска.# smart-flank-gcs-path: gs: //tmp_flank/flank/test_app_android.xml
## Отключает загрузку смарт-фланка JUnit XML.Полезно для предотвращения обновления данных о времени.## По умолчанию: false # smart-flank-disable-upload: false
## Отключает шардинг.Полезно для параметризованных тестов.# disable-sharding: false disable-sharding: false
## всегда запускаться - эти тесты вставляются в начале каждого сегмента ## полезно, если вам нужно предоставить разрешения или войти в систему до запуска других тестов # test-target-всегда-run: # - класс com.example.app.ExampleUiTest # testPasses
## регулярное выражение сопоставляется с путями сегмента, например: 2019-01-09_00: 13: 06.106000_YCKl / shard_0 / NexusLowRes-28-en-Portrait / bugreport.txt # Файлы для загрузки: # -. *. Mp4 $
## В биллинге разрешено использовать имя проекта Google Cloud Platform # project: delta -sence-114723
## Локальная папка для хранения результатов теста.Папка удаляется перед каждым прогоном, чтобы гарантировать сохранение только артефактов из нового прогона.# local-result-dir: flank
## Включить дополнительные пары app / test apk в прогон.Если приложение опущено, то для этой пары используется приложение верхнего уровня.# Additional-app-test-apks: # - app: ../test_app/apks/app-debug.apk # test: ../test_app/apks/app-debug-androidTest.apk
# -тест: ../test_app/apks/app-debug-androidTest.apk