登录
首页 >  Golang >  Go问答

是否可以动态调整测试超时时间

来源:stackoverflow

时间:2024-03-23 17:51:29 270浏览 收藏

**文章首段摘要** 在 Go 语言中,可以通过编写自定义函数 `TestMain` 来动态调整测试超时时间。该函数使用 `time.After` 函数在指定的时间间隔后触发 `panic`,从而模拟 `go test` 中的 `-timeout` 行为。为了使用此方法,需要传递 `-timeout 0` 参数以禁用默认测试超时。

问题内容

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

去测试 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)
}

解决方案


您可以编写自己的函数来执行此操作:

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 以防止触发默认测试超时。

好了,本文到此结束,带大家了解了《是否可以动态调整测试超时时间》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>