当我在 Go 中编写需要静态文件的测试时(例如hello.txt,我在其中测试了hello.txt正确读取的程序的文件),我应该将静态文件放在哪里?我应该如何在测试文件中解决它们?也就是说,目前我的setup是本地目录,GOPATH就是设置到这个目录下。我有src/ mypkg/ myfile.go myfile_test.gotestfiles/ hello.txt world.txt现在myfile_test.go,我不想使用绝对路径来引用testfiles/hello.txt. 有没有什么惯用的方法来做到这一点?这是一个明智的布局吗?
1 回答
www说
TA贡献1775条经验 获得超8个赞
常见的方法是拥有,例如
$GOPATH/src/
mypkg/
myfile.go
myfile_test.go
_testdata/
hello.txt
world.txt
然后,在您的 foo_test 中,使用
f, err := os.Open("_testdata/hello.txt")
....
或者
b, err := ioutil.ReadFile("_testdata/hello.txt")
....
测试包确保 CWD$GOPATH/src/mypkg在测试二进制文件执行时。
- 1 回答
- 0 关注
- 157 浏览
添加回答
举报
0/150
提交
取消