文章目录

  • Go (Golang) 工具之单元测试 go-junit-report | go的单元测试
    • 什么是go-junit-report
    • 安装和使用
  • go的单元测试
    • 单元测试执行
    • 直接生成xml报告

Go (Golang) 工具之单元测试 go-junit-report | go的单元测试

什么是go-junit-report

github.com/jstemmer/go-junit-report

将go test输出转换为 junit xml

go-junit-report是一种将go test 输出转换为XML报告的工具,适用于预期JUnit-Style XML报告(例如Jenkins)的应用程序。

安装和使用

go install github.com/jstemmer/go-junit-report@latest

go-junit-report 读取stdin的完整GO测试输出,并将JUNIT兼容XML写入stdout。为了捕获构建错误以及测试输出,将stdout和stderr重定向到go-junit-report。

go test -v 2>&1 | go-junit-report > report.xml

例如,还支持解析benchmark 输出,例如

go test -v -bench . -count 5 2>&1 | go-junit-report > report.xml

如果您希望go-junit-report退出,则在遇到构建错误或测试失败时退出非零退出代码,请设置-set-exit-code标志。

运行go-junit-report-help获取所有支持的flags的列表。

go的单元测试

  • 文件名必须是_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的自带go test还是很好用的,执行的前提是需要写对应的单元测试(功能测试、性能测试 可写在1个测试文件里)

go test  #执行单元测试
go test -v  #打印执行的详细信息,即使测试成功(默认情况下测试成功是不打印结果的)
go test -v xxx #执行指定文件的单元测试(此处注意,go只会读取go/src下面的目录。所以写文件路径不需要加go/src)
go test -v xxx> test # 执行指定文件的单元测试并且将结果写入文档(文件名根据自己需要设置,文件内容=终端显示)
go test -v xxx -json  # 执行指定文件的单元测试并且将结果转化为json格式
go test -v xxx -json > test.json # 执行指定文件的单元测试并且将结果转化为json格式写入文档(文件名根据自己需要设置,文件内容=终端显示)
go test -bench=.  #执行性能测试
go test -bench=. -v #显示执行的详细信息

直接生成xml报告

go get -u github.com/jstemmer/go-junit-report  #安装报告模板插件
go test -v xx/xx | go-junit-report > test.xml  #测试指定文件,并直接生成xml报告

Go (Golang) 工具之单元测试 go-junit-report | go的单元测试相关推荐

  1. (二)单元测试利器 JUnit 4

    JUnit 深入         当然,JUnit 提供的功能决不仅仅如此简单,在接下来的内容中,我们会看到 JUnit 中很多有用的特性,掌握它们对您灵活的编写单元测试代码非常有帮助. Fixtur ...

  2. 用JUnit框架实现Java单元测试

    http://tech.it168.com/j/2007-08-27/200708271737659.shtml 单元测试是整个测试流程中最基础的部分,它们要求程序员尽可能早地发现问题,并给予控制,这 ...

  3. 项目管理大法归档 - 思维导图、原型工具、接口测试、设计模式、版本管理、单元测试、持续集成、代码审查、Bug 跟踪

    项目管理大法归档 - 思维导图.原型工具.接口测试.设计模式.版本管理.单元测试.持续集成.代码审查.Bug 跟踪 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) ...

  4. 单元测试——编写JUnit测试

    什么是单元测试呢?单元测试就是针对最小的功能单元编写测试代码.Java程序最小的功能单元是方法,因此,对Java程序进行单元测试就是针对单个Java方法的测试. 单元测试有什么好处呢?在学习单元测试前 ...

  5. JUnit基础及第一个单元测试实例(JUnit3.8)

    JUnit基础及第一个单元测试实例(JUnit3.8) 单元测试 单元测试(unit testing) ,是指对软件中的最小可测试单元进行检查和验证. 单元测试不是为了证明您是对的,而是为了证明您没有 ...

  6. dbunit使用_使用dbUnit,JSON,HSQLDB和JUnit规则进行数据库单元测试

    dbunit使用 在本周TDD课程的运行中,我认为编写一些夹具以简化dbUnit的使用将很有趣. 我最初的想法只是教dbUnit有关JSON的知识,但事实证明Lieven Doclo已经做到了. 因此 ...

  7. 用于单元测试的JUnit教程–最终指南(PDF下载)

    编者注: 我们在Java Code Geeks上提供了许多JUnit教程,例如JUnit入门示例 , 使用断言和注释的 JUnit 示例 , JUnit注释示例等. 但是,为了方便读者,我们希望将所有 ...

  8. 使用dbUnit,JSON,HSQLDB和JUnit规则进行数据库单元测试

    在本周TDD课程的运行中,我认为编写一些夹具以简化dbUnit的使用将很有趣. 我最初的想法只是教dbUnit有关JSON的知识,但事实证明Lieven Doclo已经做到了. 因此,我决定更进一步, ...

  9. Golang工具集-String工具,时间工具,http工具等

    gotool gotool是一个小而全的Golang工具集,主要是将日常开发中常用的到方法进行提炼集成,避免重复造轮子,提高工作效率,每一个方法都是作者经过工作经验,和从以往的项目中提炼出来的. 20 ...

  10. Go (Golang) 工具之自动化版本工具 gsemver | semver 语义化版本规范

    文章目录 Go (Golang) 工具之gsemver 什么是gsemver 动机 感谢 gsemver 安装 gsemver 使用 准备 git HEAD 基础 CLI 配置文件 语义化版本 2.0 ...

最新文章

  1. qpsk调制解调matlab_本科毕业设计课题—QPSK相干解调的MATLAB仿真(3)
  2. es springboot 不设置id_原创 | 一篇解决Springboot 整合 Elasticsearch
  3. 什么意思IndexError: Dimension out of range (expected to be in range of [-1, 0], but got 1)
  4. hive常见问题及解决方法
  5. 零基础学python爬虫-我是如何零基础开始能写Python爬虫的
  6. 旋转数组中的最小元素 java_程序员算法面试题之旋转数组的最小值
  7. idea常用快捷方式
  8. Compound创始人:Compound链要成为一个单一全球流动性网络
  9. 语音识别相关书籍抖音十大先看哪一本最好
  10. 扫码枪回车键条码_收银系统中扫描枪扫描条码后必须按回车键才能查询商品的解决办法...
  11. 关于黑苹果安装10.14 屏幕只显示部分区域且区域过小问题的解决方法(i7-6700+AMD vega56+微星MS-7996)
  12. 【笔记】Robust High-Resolution Video Matting with Temporal Guidance
  13. Docker安装、开发环境配置及项目搭建(二,Docker桌面应用)
  14. 数据库建模-概念模型建模(E-R图)
  15. 资本资产定价模型CAPM
  16. 智能家居更智能,小程序的生态合作新方案
  17. pytorch Module里的children()与modules()的区别
  18. MarkdownPad 2 HTML 渲染组件出错问题
  19. 【EI会议合集 | 高校联办】机器学习、通信与智能技术等多领域,可推优发表SCI...
  20. python 北京出租车收费3.45_python进阶(三)

热门文章

  1. 云计算决策指南:解析医疗的7大解决方案
  2. 宋图图的工学安装环境
  3. opencv自带实例下载
  4. 开发交接文档_为开发人员创造更好的设计交接体验
  5. 初学STM32F205的库包搭建工程
  6. STM32F205转GD32F205晶振不能起振,什么原因?
  7. label怎么换行 vb_ASP.NET Lable中进行换行
  8. 国际C语言混乱代码大赛(IOCCC)1988年获奖作品
  9. USB Server助力广汽埃安U盾远程安全管控
  10. 常见故障处理电脑小问题再也不求人