Есть ли способ установить значение тайм-аута теста динамически - PullRequest
0 голосов
/ 07 сентября 2018

В настоящее время я использую следующую команду для запуска теста со значением тайм-аута, заданным во время тестового вызова.

go test 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)
}

1 Ответ

0 голосов
/ 07 сентября 2018

Вы можете написать свою собственную функцию для этого:

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, чтобы предотвратить запуск тайм-аута по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...