Метод testing.F.Skip

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

Синтаксис

gofunc (f *F) Skip(args ...interface{})

Пример

Давайте пропустим fuzz-тест, если функция Short возвращает true (тесты запущены в коротком режиме):

gopackage main

import (
  "testing"
)

func FuzzExample(f *testing.F) {
  if testing.Short() {
    f.Skip("Skipping fuzz test in short mode")
  }
  
  f.Add("hello")
  f.Fuzz(func(t *testing.T, a string) {
    // fuzz logic here
  })
}

Пример

Пропустим fuzz-тест при отсутствии необходимого флага окружения:

gopackage main

import (
  "os"
  "testing"
)

func FuzzIntegration(f *testing.F) {
  if os.Getenv("INTEGRATION_TEST") == "" {
    f.Skip("Skipping integration fuzz test: INTEGRATION_TEST not set")
  }
  
  f.Add(12345)
  f.Fuzz(func(t *testing.T, n int) {
    // integration fuzz logic
  })
}

Пример

Пропустим fuzz-тест на основе версии Go:

gopackage main

import (
  "runtime"
  "testing"
)

func FuzzVersion(f *testing.F) {
  if runtime.Version() < "go1.20" {
    f.Skip("Skipping fuzz test: requires Go 1.20 or later")
  }
  
  f.Add("go1.20")
  f.Fuzz(func(t *testing.T, version string) {
    // version-specific fuzz logic
  })
}

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

  • метод F.Add,
    который добавляет тестовые корпуса в fuzz-тест
  • метод F.Fuzz,
    который выполняет fuzz-тестирование
  • метод T.Skip,
    который пропускает обычный тест
  • функцию Short,
    которая сообщает, запущен ли тест в коротком режиме