Go语言打造:gotests测试文件生成器
发表时间: 2024-04-06 21:13
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可以为特定的源文件或整个目录生成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 弹出
根据需要选择即可生成。