Метод testing.T.SkipNow

Метод testing.T.SkipNow немедленно останавливает выполнение текущего теста, помечая его как пропущенный с помощью testing.T.Skip. В отличие от testing.T.Skip, этот метод не требует передачи сообщения и останавливает выполнение теста мгновенно, без выполнения последующего кода. Метод не принимает никаких параметров и не возвращает значений.

Синтаксис

got.SkipNow()

Пример

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

gopackage main

import (
  "testing"
)

func TestExample(t *testing.T) {
  t.SkipNow()
  t.Log("Это сообщение не будет выведено")
}

Результат выполнения команды go test -v:

go=== RUN   TestExample
--- SKIP: TestExample (0.00s)

Пример

Метод SkipNow часто используется вместе с условными проверками для пропуска тестов при определенных условиях:

gopackage main

import (
  "os"
  "testing"
)

func TestWithCondition(t *testing.T) {
  if os.Getenv("SKIP_TEST") != "" {
    t.SkipNow()
  }
  t.Log("Тест выполняется, так как переменная окружения не установлена")
}

Пример

Важно отметить, что SkipNow немедленно прерывает выполнение, поэтому последующий код не выполняется:

gopackage main

import (
  "testing"
)

func TestSkipNowOrder(t *testing.T) {
  t.Log("Это сообщение будет выведено")
  t.SkipNow()
  t.Log("Это сообщение не будет выведено")
  t.Error("Эта ошибка не будет вызвана")
}

Результат выполнения команды go test -v:

go=== RUN   TestSkipNowOrder
  main_test.go:7: Это сообщение будет выведено
--- SKIP: TestSkipNowOrder (0.00s)

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

  • метод testing.T.Skip,
    который пропускает тест с указанием причины
  • метод testing.T.Skipf,
    который пропускает тест с форматированным сообщением
  • метод testing.T.Skipped,
    который проверяет, был ли пропущен тест
  • метод testing.T.FailNow,
    который немедленно останавливает выполнение теста с пометкой о провале