РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
950 of 1593 menu

Метод testing.T.TempDir

Метод testing.T.TempDir создает временную директорию в файловой системе, которая будет автоматически удалена по завершению теста. Этот метод полезен для тестов, которым требуется создавать временные файлы или директории. Первый вызов метода создает новую пустую директорию, повторные вызовы создают дополнительные директории. Все созданные директории удаляются в конце теста.

Синтаксис

func (t *T) TempDir() string

Метод не принимает параметров и возвращает строку с абсолютным путем к созданной временной директории.

Пример 1

Давайте создадим временную директорию и проверим, что она существует:

package main import ( "fmt" "os" "testing" ) func TestTempDir(t *testing.T) { dir := t.TempDir() fmt.Println("Directory:", dir) if _, err := os.Stat(dir); err != nil { t.Errorf("Directory does not exist: %v", err) } else { fmt.Println("Directory exists") } }

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

"Directory: /tmp/TestTempDir123456789/001" "Directory exists"

Пример 2

Давайте создадим временный файл внутри временной директории:

package main import ( "fmt" "os" "path/filepath" "testing" ) func TestTempFile(t *testing.T) { dir := t.TempDir() filePath := filepath.Join(dir, "testfile.txt") err := os.WriteFile(filePath, []byte("test data"), 0644) if err != nil { t.Errorf("Failed to write file: %v", err) } data, err := os.ReadFile(filePath) if err != nil { t.Errorf("Failed to read file: %v", err) } fmt.Printf("File content: %s\n", string(data)) }

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

"File content: test data"

Пример 3

Давайте создадим несколько временных директорий в одном тесте:

package main import ( "fmt" "testing" ) func TestMultipleTempDirs(t *testing.T) { dir1 := t.TempDir() dir2 := t.TempDir() dir3 := t.TempDir() fmt.Println("Directory 1:", dir1) fmt.Println("Directory 2:", dir2) fmt.Println("Directory 3:", dir3) }

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

"Directory 1: /tmp/TestMultipleTempDirs123456789/001" "Directory 2: /tmp/TestMultipleTempDirs123456789/002" "Directory 3: /tmp/TestMultipleTempDirs123456789/003"

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

  • метод testing.T.Setenv,
    который устанавливает переменную окружения для теста
  • метод testing.T.Cleanup,
    который регистрирует функции очистки после теста
  • метод testing.T.Run,
    который запускает вложенные подтесты
  • метод testing.T.Parallel,
    который разрешает параллельный запуск тестов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить