有什么方法可以让我轻松地多次运行 Go 测试,停止第一次测试吗? 何时失败?我当然可以做这样的事情:
for i in {1..1000}; do go test ./mypkg && done
但这会导致每次都重新编译,这与测试相比非常慢 本身。我想我可以通过一些巧妙的应用来做到这一点
-exec
旗帜和xargs
,但我不擅长俏皮话。
以某种理智的方式并行运行多次的奖励积分 如果一千次失败一两次,则会输出详细信息。
使用
-count N
指定重复每个测试的次数。这只会编译一次测试。
第一次失败时使用
-failfast
停止。
$ go test ./mypkg -count 1000 -failfast
您可以将
-c
标志传递给 go test
,根据帮助,这将是:
将测试二进制文件编译为 pkg.test 但不运行它。 (其中 pkg 是包导入路径的最后一个元素。)
这样你至少可以避免每次都重新编译。