我正在寻找在使用本地文件测试Golang时应该使用的最佳实践。
通过使用本地文件,我的意思是,为了测试功能,应用程序需要一些本地文件,因为应用程序经常从这些文件中读取。
我不确定是否应该在使用ioutil包tempdir和tempfile函数运行测试之前自己编写临时文件,或者创建一个类似的测试文件夹;
testing/...test_files_here
main.go
main_test.go
然后从
中的内容中读取testing/...
由于
答案 0 :(得分:7)
名为testdata的文件夹通常用于此目的,因为go工具会忽略它(请参阅go help packages)。
答案 1 :(得分:2)
这是我目前的测试设置:
app/
main.go
main_test.go
main_testdata
package1/
package1.go
package1_test.go
package1_testdata1
package2/
package2.go
package2_test.go
package2_testdata1
特定于单个程序包的所有测试数据都放在该程序包的目录中。将由多个包使用的常见测试数据放在应用程序根目录中或$HOME
。
这个设置适合我。它很容易更改数据和测试,而无需进行额外的输入:
vim package1_test_data1; go test app/package1