简介
ginkgo源码一直在更新,使用方式也越来越人性化
- ginkgo当前版本是1.4.0,可以从github源码的config/config.go文件中查看
- 旧版本使用go get -u github.com/onsi/ginkgo/ginkgo 升级到新版本
- 源码integration文件夹中可以看到命令行参数的使用举例
下面命令行参数-和–开头的可以组合使用,效果会叠加,参数的作用有冲突的会做特殊说明
命令举例
ginkgo bootstrap
创建测试集模板文件,会生成xxx_suite_test.go文件,xxx为该目录的文件夹名,在新建测试集文件时使用
ginkgo generate xxx
创建测试例模板文件,xxx不写时,默认为所在文件夹名称
ginkgo -v
打印详细的测试例执行信息
ginkgo –process
加了该命令行参数,使用^C终止运行后,会打印出执行步骤信息,如BeforeEach和JustBefore中执行到第几步等
ginkgo –noisyPendings=false
默认值是true,设置是否打印Pending的测试例的信息
ginkgo –failOnPending
将Pending的测试例视为失败
ginkgo –noisySkippings=false
默认值是true,设置是否打印Skip掉的测试例的信息
ginkgo –skip=REGEXP
跳过符合正则的测试例,用测试例It第一个参数text的值做判断
ginkgo –focus=REGEXP
执行符合正则的测试例,用测试例It第一个参数text的值做判断
Tips:
- 1.设置Skip有两种方式,一种是命令行ginkgo –skip=和上一篇指南中提到的代码中的Skip函数;
- 2.当命令行使用了–skip,代码中也使用了Skip时,代码内的设置无效
- 3.–foucus规则和–skip相同‘
- 4.两个参数同时使用时是与的关系
ginkgo unfocus
去掉测试例文件中的F前缀,该操作会直接修改代码,FDescribe会改成Describe,其他模块类似
ginkgo -r
- 1.递归执行文件夹内的所有测试用例,用于有多层文件夹的情形
- 2.使用–skipPackages=PACKAGES,TO,SKIP 跳过不需要执行的文件夹,文件夹之间使用逗号间隔
ginkgo –regexScanFilePath=true
该命令配合–focus=PATH_REGEXP使用,用于执行符合路径符合正则的测试文件
ginkgo –seed=SEED
- 重新执行种子值为SEED的测试集
- Tips:每次执行一个测试集时,第一行打印信息Random Seed: 1519461796,即是随机种子数,根据当前时间生成
ginkgo -randomizeAllSpecs
- 随机顺序执行测试集中的所有测试例
- Tips:ginkgo执行测试文件时默认会将最顶层的测试集即var _ = Describe()进行随机顺序排列,而其内部的测试例则按顺序一个个执行
ginkgo –randomizeSuites
- 随机顺序执行测试集
- Tips:ginkgo执行测试集时,是按照文件夹在文件系统中的存储顺序一次执行
ginkgo -p
- 使用默认节点数并行执行测试用例
- Tips:默认节点数使用runtime.NumCPU()值,即逻辑CPU数,大于4时,使用runtime.NumCPU()-1
ginkgo –nodes=N
设定节点数并行执行测试例
ginkgo –stream
- 实时大于日志
- Tips:ginkgo默认并行执行时,是把日志汇总整理后打印,所以看到的日志是一个个测试例的,缺点是不实时;如果设置了该参数,日志会实时打印,缺点是日志会交叉打印
ginkgo –noColor
打印信息不使用颜色做区分
ginkgo –succinct
只打印简要信息,该值执行单个测试集时默认是false,执行多个时默认是true
ginkgo –trace
当测试例失败时,会打印详细的错误追踪信息,便于定位
ginkgo –skipMeasurements
跳过Measure
ginkgo -race
显示执行速度
ginkgo -cover
执行测试集后生成覆盖率文件
ginkgo -coverpkg=PKG1,PKG2
生成覆盖率文件,只包含后面PKG包的代码
ginkgo -coverprofile=FILENAME
指定覆盖率文件名称
ginkgo -outputdir=DIRECTORY
指定覆盖率文件存放目录
ginkgo -compliers
ginkgo在编译多个测试集(使用ginkgo -r)时,会默认根据runtime.NumCPU()的值去设定并发数,有时候不是很合理,可以用该参数指定并发数
ginkgo –failFast
遇到执行失败的测试例,整个测试就停止
ginkgo watch
* 监测代码内容的变化,一有变化立即重新执行
* 默认监测深度是1,可以使用–depth=DEPTH设置深度
* 使用–watchRegExp=WATCH_REG_EXP设置监测的代码文件
* -r 递归监测所有文件的变化
* 和-notify一起使用,每次代码变动重新执行测试完成都会触发通知ginkgo -dryRun
打印文件夹中测试例个数等信息,并不实际执行测试例
ginkgo –keepgoing
一直执行直到失败,执行多个测试集时使用
ginkgo -utilItFails
一直执行直到失败,执行单个测试集时使用
ginkgo -notify
执行完成后触发通知,需要按照对应插件,Mac执行brew install terminal-notifier,Linux下载安装notify-send
ginkgo –slowSpecThreshold=TIME_IN_SECONDS
跑执行测试集时会默认标记执行时间超过5秒的用例,该参数修改标记时间值
ginkgo –timeout=DURATION
设置超过该时间就认为测试例失败
ginkgo build PACKAGE_PATH
编译测试集成.test文件,方便移动到其他地方执行,注意在不同操作系统使用要设置不同的GOOS和GOARCH值
ginkgo package.test
执行.test格式的测试例
ginkgo –nodot
在bootstrap和generate命令时使用,用于去掉import时前面的点