gcloud firebase test android run
的{{3}}参数表示:
指定如果一个或多个测试用例由于任何原因失败的情况下,应重新尝试执行测试的次数。
这意味着它仅重新运行失败的测试,而不重新运行整个套件,对吗?换句话说,一旦测试通过就不会重试,对吧?
答案 0 :(得分:0)
--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
答案 1 :(得分:0)
文档针对--num-flaky-test-attempts
声明以下内容:
指定如果一个或多个测试用例由于任何原因失败的情况下,应重新尝试执行测试的次数。最初失败但重新尝试成功的执行被报告为FLAKY。
即如果测试执行中的一个测试用例失败,测试实验室将再次重新运行整个测试执行。 测试执行包括在一台设备上运行整个测试套件。
示例:您在两台设备上执行测试套件,将它们称为 A 和 B 。整个测试套件在 A 上成功,但是一个测试用例在 B 上失败。在这种情况下,只有设备 B 上的测试套件才会重新尝试。