当前位置: 首页 > 工具软件 > Ginkgo > 使用案例 >

Ginkgo命令详解(一)

王才英
2023-12-01

简介

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时前面的点

 类似资料: