猿问

测试中的静态文件

当我在 Go 中编写需要静态文件的测试时(例如hello.txt,我在其中测试了hello.txt正确读取的程序的文件),我应该将静态文件放在哪里?我应该如何在测试文件中解决它们?


也就是说,目前我的setup是本地目录,GOPATH就是设置到这个目录下。我有


src/

   mypkg/

        myfile.go

        myfile_test.go

testfiles/

          hello.txt

          world.txt

现在myfile_test.go,我不想使用绝对路径来引用testfiles/hello.txt. 有没有什么惯用的方法来做到这一点?


这是一个明智的布局吗?


猛跑小猪
浏览 158回答 1
1回答

www说

常见的方法是拥有,例如$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在测试二进制文件执行时。
随时随地看视频慕课网APP

相关分类

Go
我要回答