我有一个使用模块的 Go 项目。该模块包含许多嵌套的包。
./...
当我让 Go 通过传递给它来确定包结构时go test
,并行运行测试(默认行为)。
使用标志测试单个包-failfast
有效,它在第一次失败时停止,但是我想要实现的是-failfast
在所有组合包中使用(以增加 CI/CD 吞吐量)。当通过单个go test ./...
调用并行测试的一个包中的第一个测试失败时,我想停止整个测试套件。
这甚至可以使用当前版本的 go testing 实用程序吗?如果没有,是否有计划在未来实施这样的事情?
我还没有找到可以让我并行执行此操作的解决方案,但是我想到的一件事是结合类似的东西go test -failfast
,go list ./...
并按xargs
顺序(不是并行)运行测试。我会检查最后一个测试包的输出,并在第一次失败时停止一切。虽然这听起来不太好,而且可能会慢一些。
所以,是的,有没有我没有找到/想到的现有解决方案或方法?
谢谢!
go version go1.12 darwin/amd64