Testing 使用本地文件进行测试

Testing 使用本地文件进行测试,testing,go,mocking,Testing,Go,Mocking,我正在寻找在使用本地文件进行Go测试时应该使用的最佳实践 通过使用本地文件,我的意思是为了测试功能,应用程序需要一些本地文件,因为应用程序经常读取这些文件 我不确定是否应该在运行测试之前使用ioutil包tempdir和tempfile函数自己编写临时文件,或者像这样创建一个测试文件夹 testing/...test_files_here main.go main_test.go 然后阅读里面的内容 testing/... 名为testdata的文件夹通常用于此目的,因为go工具会忽略它(请

我正在寻找在使用本地文件进行Go测试时应该使用的最佳实践

通过使用本地文件,我的意思是为了测试功能,应用程序需要一些本地文件,因为应用程序经常读取这些文件

我不确定是否应该在运行测试之前使用ioutil包tempdir和tempfile函数自己编写临时文件,或者像这样创建一个测试文件夹

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