网站首页 > 技术文章 正文
gotests 是编写Go测试的一个Golang命令行工具,可以根据目标源文件的函数和方法签名生成表驱动的测试。将自动导入测试文件中的任何新依赖项。
源码
https://github.com/cweill/gotests
安装
go install github.com/cweill/gotests/...
作为开发工具插件使用
以下展示了使用官方Sublime Text 3插件进行的测试。Emacs、Vim、Atom Editor、Visual Studio Code和IntelliJ Goland也有插件。
gotests命令
通过命令行,gotests可以为特定的源文件或整个目录生成Go测试。默认情况下,它将输出打印到stdout。
$ gotests [options] PATH ...
参数
-all generate tests for all functions and methods
为所有函数和方法生成测试
-excl regexp. generate tests for functions and methods that don't
match. Takes precedence over -only, -exported, and -all
为没有匹配到的函数和方法生成测试,和only相反,优先于 -only, -exported, and -all
-exported generate tests for exported functions and methods. Takes
precedence over -only and -all
为导出函数和方法生成测试,优先于-only and -all
-i print test inputs in error messages
在错误消息中打印测试输入
-only regexp. generate tests for functions and methods that match only.
Takes precedence over -all
为匹配到的函数和方法生成测试,优先于-all
-nosubtests disable subtest generation when >= Go 1.7
禁用子测试生成。仅适用于Go 1.7+
-parallel enable parallel subtest generation when >= Go 1.7.
启动自测试生成,适用于Go 1.7+
-w write output to (test) files instead of stdout
将输出(测试)写入文件而不是stdout
-template_dir Path to a directory containing custom test code templates. Takes
precedence over -template. This can also be set via environment
variable GOTESTS_TEMPLATE_DIR
包含自定义测试代码模板的目录的路径。优先于-template。这也可以通过环境进行设置
变量GOTESTS_TEMPLATE_DIR
-template Specify custom test code templates, e.g. testify. This can also
be set via environment variable GOTESTS_TEMPLATE
指定自定义测试代码模板,例如verify。这也可以
通过环境变量GOTESTS_TEMPLATE设置
-template_params_file read external parameters to template by json with file
-template_params read external parameters to template by json with stdin
使用stdin通过json将外部参数读取到模板
命令
1、以文件名lib.go为例 ,生成lib.go文件中所有函数的测试
gotests -all lib/lib.go
进入lib目录,执行
gotests -all .
打印目录下所有函数和方法的测试
注意:生成内容是直接打印出来的
如果想将输出内容打印到指定文件,可执行
gotests -all -w lib/lib.go lib/lib_test.go
2、
根据正则匹配生成对应函数和方法的测试
gotests -only "函数或方法名" lib/lib.go
3、 模版
gotests工具准备了一些模版放在,https://github.com/cweill/gotests/tree/develop/templates,这里有比较重要的模版testify/function.tmpl。
通过模板生成测试文件命令:
gotests -i -template_dir 模板目录 -all -w 输出目录
4、goland下生成测试文件 windows环境下,goland在项目中, 打开一个文件后 ,alt+insert 弹出
根据需要选择即可生成。
猜你喜欢
- 2024-11-02 武汉课工场大数据培训:Java正则表达式入坑指南
- 2024-11-02 Go语言进阶之路:并发爬虫,爬取空姐网所有相册图片
- 2024-11-02 golang常用库:gorilla/mux-http路由库使用
- 2024-11-02 golang 使用pprof和go-torch做性能分析
- 2024-11-02 Golang Gin 入门 (一)(golang官方教程)
- 2024-11-02 日志文件转运工具Filebeat笔记(日志转载)
- 2024-11-02 Linux 命令行下搜索工具大盘点,效率提高不止一倍
- 2024-11-02 SlimTrie:战胜Btree单机百亿文件的极致索引-实现篇
- 2024-11-02 Go的安全编程和防御性编程(输入验证和过滤)
- 2024-11-02 清华学神尹成带你学习golang2021(56)(Go语言测试命令)
- 1507℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 506℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 485℃MySQL service启动脚本浅析(r12笔记第59天)
- 465℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 463℃启用MySQL查询缓存(mysql8.0查询缓存)
- 443℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 422℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 418℃MySQL server PID file could not be found!失败
- 最近发表
-
- netty系列之:搭建HTTP上传文件服务器
- 让deepseek教我将deepseek接入word
- 前端大文件分片上传断点续传(前端大文件分片上传断点续传怎么操作)
- POST 为什么会发送两次请求?(post+为什么会发送两次请求?怎么回答)
- Jmeter之HTTP请求与响应(jmeter运行http请求没反应)
- WAF-Bypass之SQL注入绕过思路总结
- 用户疯狂点击上传按钮,如何确保只有一个上传任务在执行?
- 二 计算机网络 前端学习 物理层 链路层 网络层 传输层 应用层 HTTP
- HTTP请求的完全过程(http请求的基本过程)
- dart系列之:浏览器中的舞者,用dart发送HTTP请求
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)