Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Mendapatkan Direktori Pakej yang Betul dalam Go Apabila Menggunakan `ioutil.ReadFile()` dalam Ujian?

Bagaimanakah Saya Boleh Mendapatkan Direktori Pakej yang Betul dalam Go Apabila Menggunakan `ioutil.ReadFile()` dalam Ujian?

Barbara Streisand
Lepaskan: 2024-12-12 20:41:10
asal
881 orang telah melayarinya

How Can I Get the Correct Package Directory in Go When Using `ioutil.ReadFile()` in Tests?

Mendapatkan Direktori Pakej dalam Go

Anda menghadapi isu di mana ioutil.ReadFile() cuba mencari fail dalam direktori yang salah apabila anda memanggilnya daripada pakej ujian. Masalahnya berpunca daripada cara direktori kerja semasa (CWD) ditentukan dalam persediaan anda.

Untuk menyelesaikannya, penyelesaiannya terletak pada penggunaan runtime.Caller(). Fungsi ini menyediakan maklumat tentang pemanggil fungsi semasa. Dengan menggunakan laluan fail yang dikembalikan oleh runtime.Caller(), anda boleh mendapatkan direktori pakej di mana fail itu berada.

Berikut ialah contoh yang menunjukkan cara menggunakan runtime.Caller():

package main

import (
    "fmt"
    "runtime"
    "path"
)

func main() {
    _, filename, _, ok := runtime.Caller(0)
    if !ok {
        panic("No caller information")
    }
    fmt.Printf("Filename : %q, Dir : %q\n", filename, path.Dir(filename))
}
Salin selepas log masuk

Apabila kod ini dilaksanakan, ia akan mencetak nama fail dan direktori fail yang memanggilnya. Ini membolehkan anda mengesan fail dengan tepat tanpa mengira CWD.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Direktori Pakej yang Betul dalam Go Apabila Menggunakan `ioutil.ReadFile()` dalam Ujian?. 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