Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menetapkan Direktori Kerja untuk Ujian Go dengan Betul?

Bagaimana untuk Menetapkan Direktori Kerja untuk Ujian Go dengan Betul?

Linda Hamilton
Linda Hamiltonasal
2024-10-31 03:57:02831semak imbas

How to Correctly Set the Working Directory for Go Tests?

Menyelesaikan Isu Direktori Kerja dalam Go Tests

Dalam Go, ujian unit boleh menghadapi cabaran apabila mengakses fail konfigurasi yang terdapat dalam direktori kerja tertentu. Artikel ini menangani isu sedemikian dan meneroka cara untuk membimbing arahan go test untuk menggunakan direktori kerja yang diingini untuk pelaksanaan ujian.

Pertimbangkan situasi berikut: Ujian unit aplikasi Go bergantung pada fail konfigurasi yang terdapat dalam conf/* .conf. Walau bagaimanapun, apabila melaksanakan ujian ini, mereka gagal kerana perduaan tidak dapat mengesan fail konfigurasi.

Untuk menyelesaikan isu ini, mungkin kelihatan intuitif untuk menavigasi ke direktori yang mengandungi direktori conf/ dan melaksanakan ujian go. Walau bagaimanapun, pendekatan ini sering gagal. Untuk memastikan bahawa ujian dilaksanakan dalam direktori kerja yang betul, Go menawarkan mekanisme khusus:

Menggunakan Fungsi Pemanggil

Pakej masa jalan dalam Go menyediakan fungsi dipanggil Pemanggil yang boleh mendapatkan maklumat tentang sumber fail yang memanggilnya. Maklumat ini termasuk nama fail dan laluan:

<code class="go">package sample

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

func TestGetFilename(t *testing.T) {
    _, filename, _, _ := runtime.Caller(0)
    t.Logf("Current test filename: %s", filename)
}</code>

Dengan menggunakan teknik ini, kami boleh mencari direktori yang mengandungi fail konfigurasi dan menghantar maklumat tersebut untuk pergi ujian untuk menetapkan direktori kerja untuk pelaksanaan ujian.

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

Kenyataan:
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