有没有办法动态设置测试超时值

问题描述 投票:2回答:1

目前我正在使用以下命令来运行我的测试,并在测试调用期间给出超时值。

去测试myModule -run 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)
}
unit-testing go
1个回答
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以防止触发默认测试超时。

© www.soinside.com 2019 - 2024. All rights reserved.