GO Test 单元测试&压力测试
来源:互联网 发布:js 离开页面提示 编辑:程序博客网 时间:2024/06/10 01:54
背景
本文主要介绍golang的一个工具go test
Go语言中自带有一个轻量级的测试框架testing和自带的go test命令来实现单元测试和性能测试,testing框架和其他语言中的测试框架类似,你可以基于这个框架写针对相应函数的测试用例,也可以基于该框架写相应的压力测试用例
go test 单元测试介绍
规则
- 文件名必须是_test.go结尾的,这样在执行go test的时候才会执行到相应的代码
- 你必须import testing这个包
- 所有的测试用例函数必须是Test开头
- 测试用例会按照源代码中写的顺序依次执行
- 测试函数TestXxx()的参数是testing.T,我们可以使用该类型来记录错误或者是测试状态
- 测试格式:func TestXxx (t *testing.T),Xxx部分可以为任意的字母数字的组合,但是首字母不能是小写字母[a-z],例如Testintdiv是错误的函数名。
- 函数中通过调用testing.T的Error, Errorf, FailNow, Fatal, FatalIf方法,说明测试不通过,调用Log方法用来记录测试的信息。
编译方式
- go test . 编译当前文件夹所有test测试用例
- go test -p 编译这个包测试
- go test -v 打印测试信息(默认不打印测试通过信息)
例子
package testimport "testing"func TestCount(t *testing.T) { count := 0 if count != 0 { t.Error("Test No Accept") } else { t.Log("Test Accept") }}func TestCount1(t *testing.T) { t.Error("Test Error")}
go test .
![测试结果](/Users/yidwang/Library/Containers/com.tencent.qq/Data/Library/Application Support/QQ/Users/1520990951/QQ/Temp.db/3.png)
go test -v .
![测试结果](/Users/yidwang/Library/Containers/com.tencent.qq/Data/Library/Application Support/QQ/Users/1520990951/QQ/Temp.db/2.png)
go test 压力介绍
规则
- 压力测试用例必须遵循如下格式,其中XXX可以是任意字母数字的组合,但是首字母不能是小写字母 func BenchmarkXXX(b *testing.B) { … }
- 在压力测试用例中,请记得在循环体内使用testing.B.N,他默认设置轮询次数,保证程序正常退出
- 其他约束跟单员测试相同
编译方式
- go test不会默认执行压力测试的函数,如果要执行压力测试需要带上参数-bench,例如go test -bench=”.*” 表示测试全部的压力测试函数
- go test -count 测试例子执行测试
- go test -run=name 要测试的文件名字
例子
package testimport "testing"func Add(a int, b int) int { return a + b}func Benchmark_Addd(b *testing.B) { for i := 0; i < b.N; i++ { Add(i, i*10) }}
![测试结果](/Users/yidwang/Library/Containers/com.tencent.qq/Data/Library/Application Support/QQ/Users/1520990951/QQ/Temp.db/4.png)
![测试结果](/Users/yidwang/Library/Containers/com.tencent.qq/Data/Library/Application Support/QQ/Users/1520990951/QQ/Temp.db/6.png)
go test 测试函数介绍中文链接:https://studygolang.com/articles/5494
参考链接:http://studygolang.com/wr?u=http%3a%2f%2fwww.cnblogs.com%2fdiegodu%2fp%2f5464802.html
- GO Test 单元测试&压力测试
- <10> go test单元测试
- 压力测试和单元测试
- 压力测试和单元测试
- Golang UnitTest单元测试(go test)
- go语言测试test
- go语言测试test
- 单元测试压力测试类Stopwatch
- Visual Studio 单元测试之三---压力测试
- 练习Go语言-HTTP压力测试.md
- web 项目 压力测试 ab test
- 新手学测试----Unit Test(单元测试)
- go 语言怎么写test测试
- Visual Studio 单元测试之三---压力测试 (转)
- [转]Visual Studio 单元测试之三---压力测试
- Go-单元测试
- go 单元测试
- Go 单元测试
- C# 学习(1) 可空类型
- CentOs 7 安装jdk1.8
- Extjs xtype 一览表
- Linux ALSA声卡驱动之五:移动设备中的ALSA(ASoC)
- spket插件的安装与使用
- GO Test 单元测试&压力测试
- 第13周 项目1-Prim算法的验证
- 将文件push进手机用户根目录
- 使用Keytool为JDK添加https证书信任
- 【Android】Android手机通过wifi进行数据传输
- Android Studio "Manifest merger failed with multiple errors, see logs"
- 卡尔曼/扩展卡尔曼滤波器的原理及应用
- 用javascript实现用户登录验证的代码。
- Linux——目录、文件管理