使用本地文件进行测试
Testing using local files
我正在寻找在使用本地文件测试 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 package1_test_data1; go test app/package1
我正在寻找在使用本地文件测试 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 package1_test_data1; go test app/package1