开源一夏 | 你不能错过的强大图形化测试工具
0 前言
为了弥补 Go 语言内置测试库的缺陷,诞生了优秀的第三方库 goconvey,目前 gtihub stars 数量达到了 7.4k,
官网链接:http://goconvey.co/
口号:Write behavioral tests in your editor. Get live results in your browser.
GoConvey 完美兼容 Go 内置的 testing 库,提供命令行工具简化内置的测试执行命令,测试会自动运行,提供更加直观的 Web 界面,最重要的是能够很轻易的得到测试报告。
1 GoConvey 的特性
直接集成 Go 内置测试工具,比如可以直接使用
go test
大量的回归测试套件
提供可读的,彩色的控制台输出
完全自动化的 Web UI
测试代码生成器
桌面提醒(可选)
自动在终端中运行自动测试脚本
可立即在 Sublime Text 中打开测试问题对应的代码行 (some assembly required)
2 下载安装
安装成功将看到如下输出:
3 如何使用
结构如下:
创建一个
utils.go
文件,写一个整数求和的 Sum 函数:
然后创建一个单元测试的文件 utils_test.go
文件:
第 6 行中 以
.
导入库的方式简化调用。第 9 行代码,单元测试函数的命名及注意事项和内置库
testing
要求一致(比如测试函数以 Test_开头,传入参数为*testing.T
)。函数体中第一层 Convey 提供 3 个参数:
Test Sum
(说明测试的名称)、t
和func()
。嵌套的 Convey 层提供两个参数:
1 + 2 + 3 + 4 + 5
(说明测试的名称)和func()
。使用 So 来判断预期值和输出,这里使用
ShouldEqual
。
因为 GoConvey 很好的集成了 Go 原生 tes 在终端中执行 go test -v
命令,得到如下结果,测试通过:
在终端着有着非常人性化带有彩色的界面,如图所示:
断言方法
除了上图中使用的 ShouldEqual
方法外,GoConvey 为我们提供了很多种类断言方法在 So()
函数中使用。
一般相等类
数字数量比较类
包含类
字符串类
panic 类
类型检查类
时间和时间间隔类
自定义断言方法
如果上面列出来的断言方法都不能满足你的需要,那么你还可以按照下面的格式自定义一个断言方法。
注意:<>
中的内容是你需要按照实际需求替换的内容。
4 图形界面
安装了库即自动安装了该命令行工具,如果失效,可以查看 GOBIN 是否加入 PATH 环境变量。在项目目录下执行 goconvey 就会自动启动 Web 服务。
默认访问地址为 http://127.0.0.1:8080/
,可在 Web 界面上查看到具体的信息,如下界面:
具体内容包括:
整体覆盖率
单个测试文件的运行情况
重新运行测试
单个测试文件的覆盖情况或者未覆盖情况。
访问
http://127.0.0.1:8080/reports/
,可以看测试覆盖率:
点击这个 .txt
文件,有如下结果:
通过
http://127.0.0.1:8080/composer.html
编写半自动测试用例:
5 总结
本文介绍了 Go 语言非常好用且强大的第三方库 GoConvey,然后进行下载和安装,最后使用了一个简单的加法函数进行了一个完成的 GoConvey 使用流程,该测试库提供了更多的断言方法,可以在实际开发过程中进行运用。
通过运行 goconvey
命令,可以在本地运行一个强大 Web 图形界面,建议读者将 goconvey 配合内置的 testing 使用,以提高开发效率。
参考链接
版权声明: 本文为 InfoQ 作者【宇宙之一粟】的原创文章。
原文链接:【http://xie.infoq.cn/article/4c64929d8d6ba60c853b6a1de】。文章转载请联系作者。
评论