Bagaimana untuk Menentukan Direktori Kerja untuk Ujian Go?

Susan Sarandon
Lepaskan: 2024-10-30 19:56:30
asal
804 orang telah melayarinya

How to Specify a Working Directory for Go Tests?

Go: Cara Menggunakan Direktori Kerja Khusus dalam Ujian

Apabila menulis ujian unit dalam Go, adalah penting untuk memastikan bahawa ujian mempunyai akses kepada fail konfigurasi yang diperlukan. Tingkah laku lalai 'go test' mengandaikan bahawa direktori kerja ialah akar projek. Walau bagaimanapun, dalam senario tertentu, anda mungkin menghadapi isu yang berkaitan dengan mencari fail disebabkan kod ujian terletak dalam direktori berbeza dalam projek.

Penyelesaian: Menetapkan Direktori Kerja untuk Ujian

Untuk menentukan direktori kerja khusus untuk ujian anda, anda boleh menggunakan pendekatan berikut:

  • Tetapkan Bendera -dir: Bendera -dir membenarkan anda untuk menentukan laluan ke direktori yang harus digunakan sebagai direktori kerja untuk ujian. Contohnya, pergi test -dir=/path/to/test_directory.
  • Gunakan Fungsi TestMain: Fungsi TestMain menyediakan mekanisme untuk menyediakan direktori kerja sebelum menjalankan ujian. Berikut ialah contoh menggunakan TestMain untuk menukar direktori kerja:
package main

import (
    "log"
    "os"
    "testing"
)

func TestMain(m *testing.M) {
    // Change the working directory to the test directory.
    pwd, err := os.Getwd()
    if err != nil {
        log.Fatalf("os.Getwd() failed: %v", err)
    }
    testDir := pwd + "/test_directory"
    if err := os.Chdir(testDir); err != nil {
        log.Fatalf("os.Chdir() failed: %v", err)
    }

    // Run the tests.
    os.Exit(m.Run())
}
Salin selepas log masuk
  • Tentukan Lokasi Fail Ujian Semasa: Anda juga boleh menentukan lokasi fail sumber ujian semasa dan gunakannya sebagai direktori kerja. Kod berikut menunjukkan pendekatan ini:
package sample

import (
    "testing"
    "runtime"
    "fmt"
)

func TestGetFilename(t *testing.T) {
    _, filename, _, _ := runtime.Caller(0)
    testDir := filepath.Dir(filename)
    if err := os.Chdir(testDir); err != nil {
        t.Fatalf("os.Chdir() failed: %v", err)
    }
    // Run the rest of the test.
}
Salin selepas log masuk

Dengan melaksanakan salah satu daripada pendekatan ini, anda boleh memastikan bahawa ujian anda boleh mengakses fail konfigurasi yang diperlukan, membolehkan mereka melaksanakan dengan jayanya.

Atas ialah kandungan terperinci Bagaimana untuk Menentukan Direktori Kerja untuk Ujian Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!