Метод testing.T.Skipf

Метод T.Skipf используется для пропуска текущего теста с выводом форматированного сообщения. Он принимает шаблон форматирования и аргументы, аналогично fmt.Printf. Первый параметр - строка формата, последующие - значения для подстановки. Метод помечает тест как пропущенный и прекращает его выполнение.

Синтаксис

got.Skipf(format string, args ...interface{})

Пример

Пропустим тест, если операционная система не соответствует требуемой:

gopackage main

import (
  "runtime"
  "testing"
)

func TestLinuxOnly(t *testing.T) {
  if runtime.GOOS != "linux" {
    t.Skipf("skipping test on %s, requires linux", runtime.GOOS)
  }
  // Тест для Linux
}

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

go"--- SKIP: TestLinuxOnly (0.00s)
testing_test.go:10: skipping test on windows, requires linux"

Пример

Пропустим тест, если внешняя зависимость недоступна:

gopackage main

import (
  "os"
  "testing"
)

func TestDatabaseConnection(t *testing.T) {
  dbHost := os.Getenv("DB_HOST")
  if dbHost == "" {
    t.Skipf("DB_HOST environment variable not set, skipping test")
  }
  // Тест подключения к БД
}

Результат выполнения кода без переменной окружения:

go"--- SKIP: TestDatabaseConnection (0.00s)
testing_test.go:9: DB_HOST environment variable not set, skipping test"

Пример

Используем T.Skipf с форматированием для вывода дополнительной информации о пропуске теста:

gopackage main

import (
  "fmt"
  "testing"
)

func TestComplexCondition(t *testing.T) {
  version := "1.0.0"
  requiredVersion := "2.0.0"
  if version < requiredVersion {
    t.Skipf("skipping test: version %s is less than required %s",
      version, requiredVersion)
  }
  // Тест для новой версии
  fmt.Println("Running test for version", version)
}

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

go"--- SKIP: TestComplexCondition (0.00s)
testing_test.go:11: skipping test: version 1.0.0 is less than required 2.0.0"

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

  • метод T.Skip,
    который пропускает тест с простым сообщением
  • метод T.SkipNow,
    который пропускает тест без вывода сообщения
  • метод T.Skipped,
    который возвращает статус пропуска теста
  • метод T.Fatalf,
    который завершает тест с ошибкой и форматированием