go test测试文件应该放置与何处?

XinhongWu · · 4453 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

go test文件应该放在哪里? #### go test的命名约束 请大家参见如下的博客:https://blog.csdn.net/code_segment/article/details/77507491 - 文件名必须是`_test.go`结尾的(文件名必须是`*_test.go`的类型,*代表要测试的文件名),这样在执行`go test`的时候才会执行到相应的代码 - 你必须import`testing`这个包 - 所有的测试用例函数必须是`Test`开头(函数名必须以Test开头如:TestXxx或Test_xxx) - 测试用例会按照源代码中写的顺序依次执行 - 测试函数`TestXxx()`的参数是`testing.T`,我们可以使用该类型来记录错误或者是测试状态 - 测试格式:`func TestXxx (t *testing.T)`,`Xxx`部分可以为任意的字母数字的组合,但是首字母不能是小写字母[a-z],例如`Testintdiv`是错误的函数名。 - 函数中通过调用`testing.T`的`Error`,`Errorf`,`FailNow`,`Fatal`,`FatalIf`方法,说明测试不通过,调用`Log`方法用来记录测试的信息。 #### go test文件放置何处 对比如下的2种情况: ##### 1.go test文件与源文件放置在相同的目录 在相同的目录下,不能声明多个package,否则会报如下的错误: ``` D:\workspace\go\src\tryme\add>go test can't load package: package tryme/add: found packages add (add.go) and me (add_test.go) in D:\workspace\go\src\tryme\add ``` 在相同的目录下,也就是在相同的package下,接口是可见的,不需要在test文件中引入待测试接口的package,否则会提示出现import cycle: ``` D:\workspace\go\src\tryme\add>go test # tryme/add import cycle not allowed in test ``` 因此,主要直接使用接口就可以。 ##### 2.go test文件与源文件没有放置到不同的目录下 可将单元测试文件与源文件进行分离,方便集中进行管理。 此时需要注意的事项包括: - 需要import导入源文件所在的包,使用接口时,也需要使用“package_name.API”的方式引用。 - go_test文件使用任意的包名即可,但是要保证是完全一致的,因为一个目录下只能有一个包名。

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4453 次点击  
加入收藏 微博
1 回复  |  直到 2019-02-21 10:22:03
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传