【问题标题】:Testing using local files使用本地文件进行测试
【发布时间】:2016-03-13 07:33:38
【问题描述】:

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

使用本地文件是指为了测试功能,应用程序需要一些本地文件,因为应用程序经常从这些文件中读取。

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

testing/...test_files_here
main.go
main_test.go

然后从里面的内容读取

testing/...

【问题讨论】:

  • 一个名为testdata的文件夹通常用于此目的,因为它被go工具忽略(参见go help packages
  • 啊,是的,我明白了。 “go 工具会忽略以“.”或“_”开头的目录和文件名,以及名为“testdata”的目录没有发现。谢谢
  • 诚然,这是一种懒惰的方法,但我将我的 testdata 放在 *_test.go 文件旁边:易于访问,易于查找,我不介意将它们放在身边。另一种选择是在创建 dist 之前使用 //go:generatego-bindata

标签: testing go mocking


【解决方案1】:

一个名为 testdata 的文件夹通常用于此目的,因为它被 go 工具忽略(请参阅 go 帮助包)。

【讨论】:

    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-04
      • 2014-01-11
      • 2022-01-14
      • 2012-05-14
      • 2016-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多