go test 功能,提高了开发和测试的效率。
有时会遇到这样的场景:
进行测试之前需要初始化操作(例如打开连接),测试结束后,需要做清理工作(例如关闭连接)等等。这个时候就可以使用TestMain()。

下面例子的文件结构如下:

hello/add.go
hello/test_add.go

add.go

package hellofunc Add(a,b int) int {return a+b
}

add_test.go

package helloimport("fmt""testing"
)func TestAdd(t *testing.T) {r := Add(1, 2)if r !=3 {t.Errorf("Add(1, 2) failed. Got %d, expected 3.", r)}
}func TestMain(m *testing.M) {fmt.Println("begin")m.Run()fmt.Println("end")
}

复制

测试从TestMain进入

golang中的TestMain相关推荐

  1. Golang中Buffer高效拼接字符串以及自定义线程安全Buffer

    本文原创文章,转载注明出处,博客地址 https://segmentfault.com/u/to... 第一时间看后续精彩文章.觉得好的话,顺手分享到朋友圈吧,感谢支持. Go中可以使用"+ ...

  2. 如何在golang中关闭bufio.reader_Golang 并发模型系列:1. 轻松入门流水线模型

    Go语言中文网,致力于每日分享编码.开源等知识,欢迎关注我,会有意想不到的收获! Golang作为一个实用主义的编程语言,非常注重性能,在语言特性上天然支持并发,它有多种并发模型,通过流水线模型系列文 ...

  3. go语言的iota是什么意思_关于Golang中的iota

    快速一览 iota是Golang中提供的一个简化常量和枚举编程的标识符,合理的使用这个标识符可以让代码变得更简洁,省去大量的不必要的代码. 比如下面的这个常量定义 const ( a = 1 b = ...

  4. Golang中的panic和recover(捕获异常)

    Golang中的panic和recover(捕获异常) 参考文章: (1)Golang中的panic和recover(捕获异常) (2)https://www.cnblogs.com/zhzhlong ...

  5. golang 中string和int类型相互转换

    总结了golang中字符串和各种int类型之间的相互转换方式: string转成int: test_int, err := strconv.Atoi(test_string) if err != ni ...

  6. golang中并发sync和channel

    golang中并发sync和channel chenbaoke · 2014-12-08 13:00:01 · 19151 次点击 · 预计阅读时间 5 分钟 · 不到1分钟之前 开始浏览 这是一个创 ...

  7. golang中的sync.WaitGroup

    golang中的sync.WaitGroup Posted on 2015/04/09刚才看golang的sync的包,看见一个很有用的功能.就是WaitGroup. 先说说WaitGroup的用途: ...

  8. 初步解读Golang中的接口相关编写方法

    初步解读Golang中的接口相关编写方法 概述如果说goroutine和channel是Go并发的两大基石,那么接口是Go语言编程中数据类型的关键.在Go语言的实际编程中,几乎所有的数据结构都围绕接口 ...

  9. golang中utf8和汉字互转

    golang中utf8和汉字互转 package mainimport ("fmt""strconv""strings" )func mai ...

最新文章

  1. IOS的UI基础02
  2. Mac下通过homebrew安装maven
  3. WebService入门Demo
  4. {转}maven+continuum安装与配置
  5. [转]分布式事务之TCC服务设计和实现注意事项
  6. ASP中随机函数Randomize的使用
  7. python 生成器装饰器_python: 生成器,装饰器以及列表推导式写法
  8. c语言void和null,C语言:为什么我得到NULL?
  9. python绘制turtle心电图代码_python的生态系统是由标准库和第三方库组成的,turtle库是其标准库,所以不需要安装。_学小易找答案...
  10. Key ssd_300_vgg/block3_box/L2Normalization/gamma not found in checkpoint的解决方案
  11. Atitit sql之道 艾龙著 attilax 1. Ddl dml 3 2. Crud 3 3. 高级sql 3 3.1. Merge 3 3.2. 数据库翻页 limit offset系列
  12. java 线程池_Java 线程池 ThreadPoolExecutor 八种拒绝策略浅析
  13. WPF学习之数据绑定
  14. linux服务器中安装SVN,linux服务器安装svn并上传项目
  15. 趋势移动或者移动应用2012
  16. c51编译器+linux,C51 开源编译器SDCC学习笔记-安装
  17. Mixly第三方用户库开发Arduino UNO使用EMW3080连接阿里云
  18. 卸载软件-Uninstall Tool(无残留)
  19. 根据sitemap一键推送给百度收录的python小脚本
  20. 2019.9.14校内考试

热门文章

  1. 【Flutter】Flutter 拍照示例 ( 创建应用 | 安装 image_picker 插件 )
  2. 给phpcms v9增加类似于phpcms 2008中的关键词表
  3. 团队任务3:每日立会(2018-10-18)
  4. HTTP状态码--含义
  5. Struts2 (三)OGLN
  6. 17.4.28 清北第一天水题
  7. 迭代开发个人总结20160702
  8. 关于VS打包程序无法弹出主界面的问题
  9. Flash与数学:球体曲面 (2)
  10. [转]SQL语句大全