在 Go 中,如果其中一个测试失败,有没有办法提前中止一组测试?
我正在使用stretchr/testify套件,但这只是建立在基本的 go测试功能之上。
我考虑过的一些选项:
- 我查看了设置 testing.failFast 但它没有被导出。
- 不推荐使用 os.Exit(),因为它可能会弄乱测试输出等。
- 在第一次失败时停止是不够的,因为第一次失败可能不在关键测试中
我可以添加自己的标志,然后添加到每个测试中:
if criticalTestFailed {
t.skipTest()
}
但这是添加到每个测试中的重复且烦人的样板。我想要的是这样的:
func (suite *MySuite) TestCritcalTest() {
t := MySuite.T()
defer func() {
if t.Failed() {
MySuite.SkipRemainingTests() //does not exist
}
}()
// some tests here...
}
这里有一个常见的做法吗?