【发布时间】:2015-04-14 02:05:47
【问题描述】:
有什么方法可以让我轻松多次运行 Go 测试,停止第一次 失败的时间?我当然可以这样做:
for i in {1..1000}; do go test ./mypkg && done
但这会导致每次重新编译,与测试相比非常慢
本身。我想我可以通过巧妙地应用-exec 来做到这一点
flag 和xargs,但我不擅长单行。
同时运行多次并保持理智的奖励积分 如果它在一千次中失败一两次,则详细输出。
【问题讨论】:
有什么方法可以让我轻松多次运行 Go 测试,停止第一次 失败的时间?我当然可以这样做:
for i in {1..1000}; do go test ./mypkg && done
但这会导致每次重新编译,与测试相比非常慢
本身。我想我可以通过巧妙地应用-exec 来做到这一点
flag 和xargs,但我不擅长单行。
同时运行多次并保持理智的奖励积分 如果它在一千次中失败一两次,则详细输出。
【问题讨论】:
这可能是新功能 - 但您可以使用-count N 指定重复每个测试的次数。可能值得一提的是,它将通过一次编译运行它们。
我必须感谢 Florin Păşan 在我们最近的 Github 讨论中注意到这一点。
【讨论】:
go help test没有宣传。
go help testflag。
您可以将-c 标志传递给go test,根据帮助:
将测试二进制文件编译为 pkg.test 但不要运行它。 (其中 pkg 是包导入路径的最后一个元素。)
所以你至少可以避免每次都重新编译。
【讨论】:
xargs 公式来并行运行并获得良好的失败输出,但这让我大部分时间都在那里。