当前,我正在使用以下命令运行测试,并在测试调用期间给出了超时值。
去测试myModule-运行TestSanity -v --race
-timeout 10h
Golang测试模块中是否有一种方法可以在程序执行期间进行设置。 像
func TestMain(m *testing.M) {
// customTimeout = "10h"
// m.Timeout(customTimeout) <--- Something like this
code := m.Run()
os.Exit(code)
}
答案 0 :(得分:3)
您可以编写自己的函数来做到这一点:
func panicOnTimeout(d time.Duration) {
<-time.After(d)
panic("Test timed out")
}
func TestMain(m *testing.M) {
go panicOnTimeout(10 * time.Hour) // custom timeout
code := m.Run()
os.Exit(code)
}
这应该模拟go test -timeout
的作用。不过,请务必通过-timeout 0
以防止触发默认测试超时。