Testing 使用本地文件进行测试
我正在寻找在使用本地文件进行Go测试时应该使用的最佳实践 通过使用本地文件,我的意思是为了测试功能,应用程序需要一些本地文件,因为应用程序经常读取这些文件 我不确定是否应该在运行测试之前使用ioutil包tempdir和tempfile函数自己编写临时文件,或者像这样创建一个测试文件夹Testing 使用本地文件进行测试,testing,go,mocking,Testing,Go,Mocking,我正在寻找在使用本地文件进行Go测试时应该使用的最佳实践 通过使用本地文件,我的意思是为了测试功能,应用程序需要一些本地文件,因为应用程序经常读取这些文件 我不确定是否应该在运行测试之前使用ioutil包tempdir和tempfile函数自己编写临时文件,或者像这样创建一个测试文件夹 testing/...test_files_here main.go main_test.go 然后阅读里面的内容 testing/... 名为testdata的文件夹通常用于此目的,因为go工具会忽略它(请
testing/...test_files_here
main.go
main_test.go
然后阅读里面的内容
testing/...
名为testdata的文件夹通常用于此目的,因为go工具会忽略它(请参阅go帮助包)。这是我当前的测试设置:
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组件1测试数据1;go test app/package1
名为testdata
的文件夹通常用于此目的,因为go工具会忽略它(请参见go help packages
)啊,是的,我看到了。go工具将忽略以“.”或“u”开头的目录和文件名以及名为“testdata”的目录“我没发现。感谢您不可否认,这是一种懒惰的方法,但我将我的测试数据放在*\u测试文件旁边。go
文件:易于访问,易于查找,我不介意将它们放在身边。另一个选项是在创建dist之前使用//go:generate
。