使用`go test`

时间:2015-08-17 08:48:35

标签: unit-testing go

第一次测试失败后如何让go test several/packages/...停止?

尽管已经有了一些可以使用的东西,但是构建和执行其余的测试需要一些时间。

3 个答案:

答案 0 :(得分:6)

执行1.10,添加新标记failfast进行测试:

新的go test -failfast标志会在任何测试失败后禁用运行其他测试。请注意,允许与失败的测试并行运行的测试。

https://golang.org/doc/go1.10

答案 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