首页 > 后端开发 > Golang > 在测试中使用 ioutil.ReadFile() 时如何获取正确的 Go 包目录?

在测试中使用 ioutil.ReadFile() 时如何获取正确的 Go 包目录?

Barbara Streisand
发布: 2024-12-12 20:41:10
原创
865 人浏览过

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

在 Go 中获取包目录

您遇到了 ioutil.ReadFile() 尝试在当您从测试包调用它时,目录错误。问题归结为如何在您的设置中确定当前工作目录(CWD)。

要解决此问题,解决方案在于使用runtime.Caller()。该函数提供有关当前函数的调用者的信息。通过runtime.Caller()返回的文件路径,可以推导出文件所在包的目录。

下面是一个示例,演示如何使用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))
}
登录后复制

执行此代码时,它将打印调用它的文件的文件名和目录。这使您可以准确地定位文件,而不管 CWD。

以上是在测试中使用 ioutil.ReadFile() 时如何获取正确的 Go 包目录?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板