Golang:如何在不重新编译的情况下反复运行“go test”?

时间:2015-02-13 04:48:11

标签: go xargs

有没有办法让我轻松地多次运行Go测试,暂停第一次 它失败的时间?我当然可以这样做:

for i in {1..1000}; do go test ./mypkg && done

但每次都会导致重新编译,这与测试相比非常慢 本身。我想我可以通过-exec的一些巧妙应用来做到这一点 flag和xargs,但我不擅长单行。

与一些相似的理智并行运行多次的奖励积分 如果它在一千次中失败一次或两次,则详细输出。

2 个答案:

答案 0 :(得分:7)

这可能是新功能 - 但您可以使用-count N指定重复每项测试的次数。可能值得一提的是它将使用单个编译来运行它们。

我要感谢FlorinPăţan在最近的一次Github讨论中注意到了。

答案 1 :(得分:6)

您可以将-c标记传递给go test,根据帮助,我会将其传递给{{1}}:

  

将测试二进制文件编译为pkg.test但不运行它。 (其中pkg是包的导入路径的最后一个元素。)

所以你至少可以避免每次都重新编译。