有没有办法让我轻松地多次运行Go测试,暂停第一次 它失败的时间?我当然可以这样做:
for i in {1..1000}; do go test ./mypkg && done
但每次都会导致重新编译,这与测试相比非常慢
本身。我想我可以通过-exec
的一些巧妙应用来做到这一点
flag和xargs
,但我不擅长单行。
与一些相似的理智并行运行多次的奖励积分 如果它在一千次中失败一次或两次,则详细输出。
答案 0 :(得分:7)
这可能是新功能 - 但您可以使用-count N
指定重复每项测试的次数。可能值得一提的是它将使用单个编译来运行它们。
我要感谢FlorinPăţan在最近的一次Github讨论中注意到了。
答案 1 :(得分:6)
您可以将-c
标记传递给go test
,根据帮助,我会将其传递给{{1}}:
将测试二进制文件编译为pkg.test但不运行它。 (其中pkg是包的导入路径的最后一个元素。)
所以你至少可以避免每次都重新编译。