Метод testing.T.Skipf
Метод T.Skipf используется для пропуска текущего теста
с выводом форматированного сообщения. Он принимает шаблон
форматирования и аргументы, аналогично fmt.Printf.
Первый параметр - строка формата, последующие - значения
для подстановки. Метод помечает тест как пропущенный и
прекращает его выполнение.
Синтаксис
t.Skipf(format string, args ...interface{})
Пример
Пропустим тест, если операционная система не соответствует требуемой:
package 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:
"--- SKIP: TestLinuxOnly (0.00s)
testing_test.go:10: skipping test on windows, requires linux"
Пример
Пропустим тест, если внешняя зависимость недоступна:
package 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")
}
// Тест подключения к БД
}
Результат выполнения кода без переменной окружения:
"--- SKIP: TestDatabaseConnection (0.00s)
testing_test.go:9: DB_HOST environment variable not set, skipping test"
Пример
Используем T.Skipf с форматированием для вывода
дополнительной информации о пропуске теста:
package 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)
}
Результат выполнения кода:
"--- SKIP: TestComplexCondition (0.00s)
testing_test.go:11: skipping test: version 1.0.0 is less than required 2.0.0"