一尘不染

Golang:测试和工作目录

go

我在Go中为我的应用程序编写了一些单元测试。但是,测试失败,因为它找不到配置文件。通常,二进制文件会在路径下的工作目录中查找配置文件conf/*.conf

我认为浏览到包含该目录conf/go test在其中运行的目录可以解决该问题,但是它仍然报告文件系统找不到指定的路径。

我如何知道go test使用某个目录作为工作目录,以便可以实际执行测试?


阅读 690

收藏
2020-07-02

共1个答案

一尘不染

您可能可以使用调用方来获取当前测试源文件的路径,如下所示:

package sample

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

func TestGetFilename(t *testing.T) {
    _, filename, _, _ := runtime.Caller(0)
    t.Logf("Current test filename: %s", filename)
}
2020-07-02