首页 > 解决方案 > 运行测试直到失败

问题描述

在 Bazel 中,您可以使用以下命令多次重新运行测试:

bazel test --runs_per_test=<n> <target>

这对于重现导致不稳定测试失败的条件很有用。

但是,这种方法的缺点是n无论结果如何,测试都是运行时间。

对于在极少数情况下易碎的测试,这意味着您必须设置为n高,但这意味着您可能必须滚动浏览大量文本才能找到失败的测试输出。

Bazel 中是否有内置方法来运行测试直到失败?现在我while在 Bash 中使用了一个循环,这对我的用例来说已经足够了,但不便于移植:

while bazel test --test_output=errors -t- <target_name>; do :; done

标签: bazel

解决方案


--notest_keep_going一旦测试失败,通过将导致 Bazel 退出。因此,您可以--notest_keep_going结合使用高得离谱的--runs_per_test.


推荐阅读