第一次测试失败后如何让go test several/packages/...
停止?
尽管已经有了一些可以使用的东西,但是构建和执行其余的测试需要一些时间。
答案 0 :(得分:6)
执行1.10,添加新标记failfast
进行测试:
新的go test -failfast
标志会在任何测试失败后禁用运行其他测试。请注意,允许与失败的测试并行运行的测试。
答案 1 :(得分:0)
使用os.Exit(1)。
func TestFoo(t *testing.T) {
if err := foo(); err != nil {
t.Errorf("foo failed: %v", err) // Mark the test as failed.
os.Exit(1) // Cancel any further tests.
}
}
答案 2 :(得分:-2)
要加快构建阶段,您可以运行
go test -i several/packages/...
在构建和安装测试依赖项的测试之前的测试。
要在第一次失败后停止,您可以使用类似
的内容go test several/packages/... | grep FAILED | head -n 1