Функция testing.Short
Функция testing.Short проверяет, выполняется ли тест
в коротком режиме. Она возвращает true, если тесты
запущены с флагом -test.short или через переменную
среды, и false в противном случае. Эта функция не
принимает параметров и возвращает логическое значение.
Синтаксис
testing.Short()
Пример
Давайте создадим тест, который пропускает длительные операции при запуске в коротком режиме:
package main
import (
"testing"
"time"
)
func TestLongOperation(t *testing.T) {
if testing.Short() {
t.Skip("Skipping long test in short mode")
}
time.Sleep(5 * time.Second)
t.Log("Long operation completed")
}
Результат выполнения кода при запуске с флагом -test.short:
"--- SKIP: TestLongOperation (0.00s)"
Пример
Рассмотрим пример использования с условной логикой для адаптации тестов под разные режимы запуска:
package main
import (
"testing"
)
func TestDataProcessing(t *testing.T) {
dataSize := 1000
if testing.Short() {
dataSize = 10
t.Log("Running in short mode with reduced data size")
}
result := processData(dataSize)
if result != dataSize {
t.Errorf("Expected %d, got %d", dataSize, result)
}
}
func processData(size int) int {
return size
}
Результат выполнения кода при запуске без флага -test.short:
"Running in short mode with reduced data size"
Пример
Покажем, как использовать функцию в комплексных тестовых сценариях с несколькими проверками:
package main
import (
"testing"
)
func TestComplexSuite(t *testing.T) {
if testing.Short() {
t.Log("Running only fast tests")
runFastTests(t)
} else {
t.Log("Running full test suite")
runFastTests(t)
runSlowTests(t)
}
}
func runFastTests(t *testing.T) {
t.Log("Fast tests completed")
}
func runSlowTests(t *testing.T) {
t.Log("Slow tests completed")
}
Результат выполнения кода в коротком режиме:
"Running only fast tests"
"Fast tests completed"
Смотрите также
-
функцию
testing.Verbose,
которая проверяет режим подробного вывода -
функцию
testing.T.Skip,
которая пропускает текущий тест -
функцию
testing.T.Skipf,
которая пропускает тест с форматированным сообщением -
функцию
testing.T.Skipped,
которая проверяет, был ли тест пропущен