一、Test

  1. 每一个test文件须import一个testing

  2. test文件下的每一个test case 均必须用Test开头并且符合TestXxxx形式,否则go test会直接跳过测试不执行

  3. test case的入参为t *testing.T或b *testing.B

  4. t.Errof为打印错误信息,并且当前test case会被跳过

  5. t.SkipNow()为跳过当前test,并且直接按pass处理继续下一个test

  6. Go的test不会保证多个TestXxxx是顺序执行,但是通常会按顺序执行

  7. 使用t.Run来执行subtests可以做到控制test输出以及test顺序

  8. 使用TestMain作为初始化test,并且使用m.Run()来调试其它tests可以完成一些需要初始化操作的testing,比如数据库连接,文件打开,rest服务登录等。

  9. 如果没有在TestMain中调用m.Run()则除了TestMain以外的其它的tests都不会被执行

二、Benchmark

  1. benchmark函数一般以Benchmark开头

  2. benchmark的case一般会跑b.N次,而且每次执行都会如此

  3. 在执行过程中会根据实际case的执行时间是否稳定会增加b.N次数以达到稳定

  4. 命令:go test -bench=.

  5. 要确保被测试函数总能在一个时间达到稳态

Golang学习---test写法和benchmark写法的更多相关文章

  1. js 多个事件的绑定及移除(包括原生写法和 jquery 写法)

    需要打开控制台查看效果: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

  2. JQ写法和js写法 方法函数化

    <script> $(function () { $('#head').click=function () { alert($(this).html()) } }) </script ...

  3. dom写法和jquery写法

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  4. ASP.NET MVC深入浅出(被替换) 第一节: 结合EF的本地缓存属性来介绍【EF增删改操作】的几种形式 第三节: EF调用普通SQL语句的两类封装(ExecuteSqlCommand和SqlQuery ) 第四节: EF调用存储过程的通用写法和DBFirst模式子类调用的特有写法 第六节: EF高级属性(二) 之延迟加载、立即加载、显示加载(含导航属性) 第十节: EF的三种追踪

    ASP.NET MVC深入浅出(被替换)   一. 谈情怀-ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态 ...

  5. golang学习之beego框架配合easyui实现增删改查及图片上传

    golang学习之beego框架配合easyui实现增删改查及图片上传 demo目录: upload文件夹主要放置上传的头像文件,main是主文件,所有效果如下: 主页面: 具体代码: <!DO ...

  6. golang 学习笔记

    golan 声明的变量必须要用到? 语法 a,b:=2323; b为 bool 类型 结构体的赋值 需要用到逗号分隔字段 并且最后一个字段后也必须加上逗号 这和 JavaScript 的对象不一样哦 ...

  7. Golang学习:sublime text3配置golang环境

    最近导师让学习golang, 然后我就找了些有关golang的学习视频和网站. 昨天在电脑上下载了go tools, 之后在sublime上配置了golang的运行环境.By the way, 我的电 ...

  8. golang学习笔记18 用go语言编写移动端sdk和app开发gomobile

    golang学习笔记18 用go语言编写移动端sdk和app开发gomobile gomobile的使用-用go语言编写移动端sdk和app开发https://blog.csdn.net/u01249 ...

  9. golang学习笔记8 beego参数配置 打包linux命令

    golang学习笔记8 beego参数配置 打包linux命令 参数配置 - beego: 简约 & 强大并存的 Go 应用框架https://beego.me/docs/mvc/contro ...

随机推荐

  1. python css选择器

    css 选择器 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  2. SerialPort项目配置

    app的build.gradle下: apply plugin: 'com.android.application' android { compileSdkVersion 26 defaultCon ...

  3. PTA币值转化

    include<stdio.h> include<math.h> int n,s=0; int main(void){ int i,j,k,p=1,flag=1; int f( ...

  4. jupyter可视化调试

    1. 安装PixieDust  pip install pixiedust 2. %%pixie_debugger <The Visual Python Debugger for Jupyter ...

  5. Java Web组件Servlet、Filter、Listener

    一.Servlet 类javax.servlet.http.HttpServlet; 1.是单例模式,一个web容器中只有一个实例.服务器调用它的service方法进行请求处理, service方法又 ...

  6. Revit 命令添加下拉框

    在学习revit制作下拉框时,需要分为三个步骤: 1.创建一个面板(panel). RibbonPanel panel10 = application.CreateRibbonPanel(Global ...

  7. C#创建windows服务并发布

    创建window 服务 新建一个window 服务项目MyService,如下图 切换到代码视图修改. using System; using System.Collections.Generic; ...

  8. IntelliJ IDEA 集成 SVN

    在idea中使用subversion提交代码需要使用SVN SVN下载官网:https://tortoisesvn.net/downloads.html 可以根据自己电脑下载相应的版本,如果安装了的需 ...

  9. SVN:linux下搭建svn服务器

    转载:https://www.cnblogs.com/puloieswind/p/5856326.html 1. 安装SVN服务器: 检查是否已安装 # rpm -qa subversion 安装SV ...

  10. C#使用List实现类似RadioButtonGroup的单选功能

    首先说说需求,有多种不同类型的UserControl用于以不同的方式显示数据,想通过在另一个view中实现某种点击选中按钮后,在数据显示view中,只让被逻辑关联的UserControl显示(Visi ...