首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Golang:测试和工作目录

Golang:测试和工作目录
EN

Stack Overflow用户
提问于 2014-05-24 15:58:08
回答 12查看 55.4K关注 0票数 80

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

我认为浏览包含conf/的目录并在其中运行go test会解决这个问题,但它仍然报告文件系统无法找到指定的路径。

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

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2015-01-28 19:05:42

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

代码语言:javascript
复制
package sample

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

func TestGetFilename(t *testing.T) {
    _, filename, _, _ := runtime.Caller(0)
    t.Logf("Current test filename: %s", filename)
}
票数 53
EN

Stack Overflow用户

发布于 2014-05-24 16:43:56

我认为这是不可能的。我没有找到明确说明这一点的文档,但我相信go test总是使用包目录(包含go源文件)作为工作目录。

票数 29
EN

Stack Overflow用户

发布于 2015-04-09 14:24:40

作为解决办法,我编译了测试并从当前目录执行测试。

go test -c && ./<mypackage>.test

或者,如果您想要一个可以使用的通用命令,可以用-o选项重命名测试文件。

go test -c -o xyz.test && ./xyz.test

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23847003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档