首页 > 其他分享 >Go日常

Go日常

时间:2023-03-25 18:14:15浏览次数:34  
标签:测试 testing bench test 测试用例 日常 go Go

Test

1. 简介

Go 语言中自带有一个轻量级的测试框架 testing 和自带的 go test 命令来实现单元测试和性能测试。

2. 要求

  • 文件名必须是`_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`方法用来记录测试的信息。

4. 压力测试

  • 压力测试用例必须遵循如下格式,其中 XXX 可以是任意字母数字的组合,但是首字母不能是小写字母
  • func BenchmarkXXX(b *testing.B) { ... }
  • go test 不会默认执行压力测试的函数,如果要执行压力测试需要带上参数-test.bench,语法:-test.bench="test_name_regex",例如 go test -test.bench=".*"表示测试全部的压力测试函数
  • 在压力测试用例中,请记得在循环体内使用 testing.B.N,以使测试可以正常的运行文件名也必须以_test.go 结尾

标签:测试,testing,bench,test,测试用例,日常,go,Go
From: https://www.cnblogs.com/cqx6388/p/17255265.html

相关文章

  • golang 实现的零依赖、高性能、并发 mysqldump 工具。
    mysqldumpgolang中实现的零依赖、高性能、并发mysqldump工具。项目地址:https://github.com/dengjiawen8955/mysqldump/blob/master/README-zh.md文章地址:https:/......
  • Go map 内存泄露
    前言在Go中,map这个结构使用的频率还是比较高的.其实在所有的语言中,map使用的频率都是很高的.之前在使用中,一直都知道map的内存在元素删除的时候不会回收,但一直......
  • go语言学习-grpc2:proto文件说明
    messageprotobuf中定义一个消息类型是通过关键字message字段指定。消息就是需要传输的数据格式的定义,它类似java中的class,go中的structmessageUser{stringusername=1......
  • 【golang实现即时通讯系统】(一)
    即时通讯系统1.基础server构建创建一个Server的结构体,结构体应该包含服务端的IP和端口写一个创建Server的方法创建一个启动Server函数创建一个业务链接函数serve......
  • 【入门】Go语言常量详解
    1、什么是常量?程序运行期间不可以变的量使用const定义不能修改常量的值不能打印常量的地址常量在定义时候必须赋值2、常量于变量的区别?变量的值是可以变的,常量......
  • 2023爬虫学习笔记 -- MongoDB数据库
    一、下载安装mongodb1、下载地址https://www.mongodb.com/try/download/community2、一路下一步安装,路径不要出现空格中文等特殊字符3、设置环境变量将bin目录地址放到path......
  • maven install时报错Failed to execute goal org.apache.maven.plugins:maven-surefir
    maveninstall时有两种解决办法:1.maven命令行  mvncleanpackage-Dmaven.test.skip=true 注意下路径就可以,如果是idea,那就更方便,直接在这里输入mvncleanpackage......
  • go判断文件是否存在、是否是目录
    判断文件或目录是否存在使用os.IsNotExist方法使用os.IsNotExist的前提是有一个error,且这个err类型是ErrNotExist。使用os.Stat可以获取ErrNotExist。funcExists1(pathst......
  • Go语言拼接URL路径的三种方法
    Go语言拼接URL路径有多种方法建议用ResolveReference。JoinPathJoinPath会把多个多个路径合并成一个路径,并且处理../和./,多个//合并成单个/。packagemainimport( "fmt"......
  • go语言int64整型转字符串
    go语言中string(int)会把int当成UTF-8的Unicode值,转换成对应的字符,标准库strconv是专门用来实现基本数据类型和其字符串表示的相互转换。packagemainimport( "fmt" "s......