测试中的静态文件

时间:2013-08-25 16:38:29

标签: testing go

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

也就是说,目前我的设置是本地目录,GOPATH设置为此目录。我有

src/
   mypkg/
        myfile.go
        myfile_test.go
testfiles/
          hello.txt
          world.txt

现在在myfile_test.go,我不想使用绝对路径来引用testfiles/hello.txt。有没有惯用的方法呢?

这是一个合理的布局吗?

1 个答案:

答案 0 :(得分:6)

通常的方法是,例如

$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