优秀的编程知识分享平台

网站首页 > 技术文章 正文

golang 生成测试文件工具gotests(golang代码检查工具)

nanyue 2024-11-02 12:19:12 技术文章 4 ℃

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 弹出

根据需要选择即可生成。



最近发表
标签列表