Вести с Полей
Канал с советами по современной ИИ разработке. Вступайте!
965 of 1593 menu
◀ ▶

Метод testing.T.Deadline

Метод testing.T.Deadline возвращает время (time.Time), когда текущий тест должен быть завершен. Если тест выполняется дольше указанного времени, Go завершит его принудительно. Метод возвращает два значения: время завершения и булево значение, указывающее, установлен ли дедлайн для теста. Если дедлайн не установлен, второе значение будет false.

Синтаксис

t.Deadline()

Пример

Давайте проверим, установлен ли дедлайн для теста:

package main import ( "fmt" "testing" "time" ) func TestDeadline(t *testing.T) { deadline, ok := t.Deadline() if ok { fmt.Printf("deadline: %v\n", deadline) } else { fmt.Println("deadline not set") } }

Результат выполнения кода (если тест запущен с флагом -timeout):

"deadline: 2026-09-04 15:30:00 +0000 UTC"

Пример

Давайте вычислим оставшееся время до завершения теста:

package main import ( "fmt" "testing" "time" ) func TestRemainingTime(t *testing.T) { deadline, ok := t.Deadline() if ok { remaining := time.Until(deadline) fmt.Printf("remaining time: %v\n", remaining) } else { fmt.Println("deadline not set") } }

Результат выполнения кода:

"remaining time: 5m0s"

Пример

Давайте используем дедлайн для прерывания долгой операции:

package main import ( "fmt" "testing" "time" ) func TestLongOperation(t *testing.T) { deadline, ok := t.Deadline() if !ok { t.Skip("deadline not set, skipping test") } remaining := time.Until(deadline) if remaining < time.Second { t.Skip("not enough time to complete the test") } time.Sleep(500 * time.Millisecond) fmt.Println("operation completed successfully") }

Результат выполнения кода:

"operation completed successfully"

Смотрите также

  • метод testing.T.FailNow,
    который немедленно завершает выполнение теста
  • метод testing.T.Skip,
    который пропускает текущий тест
  • метод testing.T.Parallel,
    который позволяет запускать тесты параллельно
  • метод testing.T.Cleanup,
    который регистрирует функцию для выполнения после завершения теста
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить