--Num-flaky-test-попытки перезапустить весь пакет или просто проваленный тест? - PullRequest
0 голосов
/ 27 апреля 2019

Документация для --num-flaky-test-attempts параметра gcloud firebase test android run гласит следующее:

Указывает количество попыток повторного выполнения теста, если по какой-либо причине один или несколько его тестов не пройдены.

Это означает, что он перезапускает только неудачные тесты, но не весь пакет, верно? Другими словами, как только тест пройден, он не будет повторен, верно?

Ответы [ 2 ]

0 голосов
/ 29 апреля 2019

Документация гласит следующее для --num-flaky-test-attempts:

Определяет количество попыток повторного выполнения теста, если по какой-либо причине один или несколько его тестов не пройдены. Выполнение, которое первоначально завершается неудачно, но успешно при любой повторной попытке, сообщается как FLAKY.

т.е. если один тестовый случай в тестовом выполнении не пройден, Test Lab повторно выполнит весь тестовый запуск снова. выполнение теста состоит из запуска всего набора тестов на одном устройстве.

Пример: вы выполняете свой набор тестов на двух устройствах, давайте называть их A и B . Весь набор тестов успешно выполняется на A , но один тестовый набор не проходит на B . В этом случае будет произведена повторная попытка только набора тестов на устройстве B .

0 голосов
/ 29 апреля 2019

Параметр командной строки --num-flaky-test-attempts из gcloud firebase test android run, по-видимому, перезапускает все тесты, а не только неудачные тесты.

Я запустил набор тестов, используя --num-flaky-test-attempts 10, и здесь отметки времени из журналов для одного теста в наборе:

04-27 03:41:51.225 passed
04-27 03:41:50.519 passed
04-27 03:41:43.533 failed
04-27 03:41:48.625 failed 
04-27 03:42:13.886 failed
04-27 03:41:33.749 failed
04-27 03:41:43.694 failed
04-27 03:41:42.101 failed
04-27 03:41:20.310 passed
04-27 03:40:17.819 passed
04-27 03:33:14.154 failed

Кажется, каждый раз выполнялся весь набор тестов. В некоторых случаях упомянутый выше тест прошел, а в некоторых - не прошел. Он проходил и терпел неудачу несколько раз, поэтому очевидно, что он перезапускает тест независимо от того, прошел он или нет.

Я полагаю, что было всего 11 тестов, потому что я указал --num-flaky-test-attempts 10, что означает, что он попытался запустить пакет один раз, а после сбоя он запустился еще 10 раз, в общей сложности 11.

Вот полная команда на случай, если она будет полезна кому-либо:

gcloud firebase test android run \
--project locuslabs-android-sdk \
--app app/build/outputs/apk/debug/app-debug.apk \
--test app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk \
--device model=walleye,version=28,locale=en_US,orientation=portrait \
--test-targets "class com.locuslabs.android.sdk.TestUITest" \
--use-orchestrator \
--num-flaky-test-attempts 10 \
--timeout 30m \
--environment-variables numShards=10,shardIndex=2 \
--verbosity debug
...