zoukankan      html  css  js  c++  java
  • golang test说明解读

    go test是go语言自带的测试工具,其中包含的是两类,单元测试和性能测试

    通过go help test可以看到go test的使用说明:

    格式形如:

    go test [-c] [-i] [build flags] [packages] [flags for test binary]

    参数解读:

    -c : 编译go test成为可执行的二进制文件,但是不运行测试。

    -i : 安装测试包依赖的package,但是不运行测试。

    关于build flags,调用go help build,这些是编译运行过程中需要使用到的参数,一般设置为空

    关于packages,调用go help packages,这些是关于包的管理,一般设置为空

    关于flags for test binary,调用go help testflag,这些是go test过程中经常使用到的参数

    -test.v : 是否输出全部的单元测试用例(不管成功或者失败),默认没有加上,所以只输出失败的单元测试用例。

    -test.run pattern: 只跑哪些单元测试用例

    -test.bench patten: 只跑那些性能测试用例

    -test.benchmem : 是否在性能测试的时候输出内存情况

    -test.benchtime t : 性能测试运行的时间,默认是1s

    -test.cpuprofile cpu.out : 是否输出cpu性能分析文件

    -test.memprofile mem.out : 是否输出内存性能分析文件

    -test.blockprofile block.out : 是否输出内部goroutine阻塞的性能分析文件

    -test.memprofilerate n : 内存性能分析的时候有一个分配了多少的时候才打点记录的问题。这个参数就是设置打点的内存分配间隔,也就是profile中一个sample代表的内存大小。默认是设置为512 * 1024的。如果你将它设置为1,则每分配一个内存块就会在profile中有个打点,那么生成的profile的sample就会非常多。如果你设置为0,那就是不做打点了。

    你可以通过设置memprofilerate=1和GOGC=off来关闭内存回收,并且对每个内存块的分配进行观察。

    -test.blockprofilerate n: 基本同上,控制的是goroutine阻塞时候打点的纳秒数。默认不设置就相当于-test.blockprofilerate=1,每一纳秒都打点记录一下

    -test.parallel n : 性能测试的程序并行cpu数,默认等于GOMAXPROCS。

    -test.timeout t : 如果测试用例运行时间超过t,则抛出panic

    -test.cpu 1,2,4 : 程序运行在哪些CPU上面,使用二进制的1所在位代表,和nginx的nginx_worker_cpu_affinity是一个道理

    -test.short : 将那些运行时间较长的测试用例运行时间缩短

    实时了解作者更多技术文章,技术心得,请关注微信公众号“轩脉刃的刀光剑影”

    本文基于署名-非商业性使用 3.0许可协议发布,欢迎转载,演绎,但是必须保留本文的署名叶剑峰(包含链接http://www.cnblogs.com/yjf512/),且不得用于商业目的。如您有任何疑问或者授权方面的协商,请与我联系

  • 相关阅读:
    基于分布式思想下的RPC解决方案--笔记
    前端对页面展示修改出现的问题------行内块元素(标签)、行内元素(标签)、块元素(标签)的区别
    POI读取带有图片(图片有的是合并单元格的)的商品列表Excel
    Springboot 默认加载文件(可直接访问、不可直接访问)是出现的问题
    for循环快还是递归快
    try catch finally 中遇到的return问题(经典)
    为什么阿里巴巴禁止在 foreach 循环里进行元素的 remove/add 操作
    数据结构Java实现03----单向链表的插入和删除
    匿名内部类详解(粗略)
    非法字符: 'ufeff' idea下的解决方案
  • 原文地址:https://www.cnblogs.com/yjf512/p/2870927.html
Copyright © 2011-2022 走看看