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

Golang: How to run "go test" repeatedly without recompiling?

有什么办法让我轻松 运行 多次围棋测试,停止第一个 失败的时间?我当然可以这样做:

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

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

奖励积分 运行同时多次使用它并保持一些理智 如果一千次失败一两次,则输出详细信息。

您可以将 -c 标志传递给 go test,这将根据帮助:

Compile the test binary to pkg.test but do not run it. (Where pkg is the last element of the package's import path.)

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

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

我必须感谢 Florin Păşan 在我们最近的 Github 讨论中注意到这一点。