为了让大家对gauge语法有更好的理解,我以一部大家都喜欢地电视《鹿鼎记》为例。

梗概

gauge语法结构

gauge语法是基于markdown。

解释

  • test suite:测试套件,可以理解为一个测试项目 。包含一个或者多个spec文件;
  • spec:spec(.spec或者 .md)文件,一系列测试场景的集合,通常是指一个文件;
  • scenario:测试场景(我更愿意叫它:用户故事),通常包含多个步骤;
  • step:测试步骤,指明这一个步骤内容,告诉别人要做什么。通常和代码实现关联。
  • tags: 标签,打上标签的spec或者scenario可以单独执行。
  • concept:多个步骤组合而成,又可以做为一个步骤。
  • parameters:参数,gauge的参数比较丰富,后面详说。

举例

# 鹿鼎记tags: the.deer.and.the.cauldronspec下的步骤
* 开始看电视## 第一回tags: episode_1
* 主角 "韦小宝" 降临
* 他乡遇故知 "陈近南" ,成为他的徒弟## 第二回tags: episode_2
* 主角 "韦小宝" 降临
* 联合 "乾隆" 打败 "鳌拜"## 第三回tags: episode_3* 主角 "韦小宝" 降临
* 认识许多漂亮女孩|girl  |age||------|---||双儿   |17 ||沐剑屏 |18 ||苏荃   |25 ||阿珂   |18 ||建宁公主|20 ||曾柔   |20 ||方怡   |22 |___
* 关机睡觉

specification

specification是一个 .spec或者.md文件的一级标题,如

# 鹿鼎记

或者

鹿鼎记
==========

一个spec文件只允许有一个一级标题

scenarios

scenarios是spec文件内的二级标题,通常一个spec文件可以包含多个二级标题,比如

## 第一回

或者

第二回
-----------

step

step是指测试步骤,他是以*格式开头。如

* 主角 "韦小宝" 降临

concept

concept可以聚合多个步骤组成一个步骤,以供spec使用,上面《鹿鼎记》的例子没有,我在下面补充上。

新建一个cpt文件
example.cpt,内容如下

# 喜欢 <girl>, 并和她结婚
* 遇到漂亮的 <girl>
* 追求到她,并同她结婚

spec文件如何使用concept呢?
我们在spec文件新建一个scenario,添加步骤

## 第四回* 主角 "韦小宝" 降临
* 喜欢 "双儿", 并和她结婚

双儿会作为参数,从.spec传递到.cpt。详细内容,我们在实战里细说。

tags

tags是指标签,可以这么理解,我想看电视《鹿鼎记》 那么给鹿鼎记加个标签,然后我可以只执行这个标签。如果我想看鹿鼎记的某一集,那么我可以只执行这一集的标签即可。

tags: the.deer.and.the.cauldron
tags: episode_1

parameters

简单参数

韦小宝便是简单参数,在步骤里传递的

* 主角 "韦小宝" 降临

动态参数

请看上面concept这一节,< girl>表示动态参数

.cpt

# 喜欢 <girl>, 并和她结婚
* 遇到漂亮的 <girl>
* 追求到她,并同她结婚

.spec

## 第四回* 主角 "韦小宝" 降临
* 喜欢 "双儿", 并和她结婚

表格参数

表格参数,很明显是指参数是以表格的形式列明,然后步骤里面可以逐个取出使用。
如:

* 认识许多漂亮女孩|girl  |age||------|---||双儿   |17 ||沐剑屏 |18 ||苏荃   |25 ||阿珂   |18 ||建宁公主|20 ||曾柔   |20 ||方怡   |22 |

文件参数

文件参数,在示例里面没有写出来,在此处单独做说明。

csv文件参数

csv文件可以代替spec里面的表格参数,看上去比较简洁,但不明了。因为参数全部在csv文件里

* 认识许多漂亮女孩|girl  |age||------|---||双儿   |17 ||沐剑屏 |18 ||苏荃   |25 ||阿珂   |18 ||建宁公主|20 ||曾柔   |20 ||方怡   |22 |
* 认识许多漂亮女孩 <table:girl.csv>

csv内容如下:

girl,age
双儿,17
沐剑屏,18
苏荃,25
阿珂,18
建宁公主,20
曾柔,20
方怡,22

上面的步骤作用完全一样

txt文件参数

txt文件的作用是代替静态参数的传入,gauge会自动将读取到的文件内容做为参数传给底层代码实现。

* 主角 "韦小宝" 降临
* 主角 <file:file.txt> 降临

file.txt的内容为

韦小宝

上面的两个步骤作用完全一样

tear down

tear down表面解释是拆除,可以理解为数据清理。若有tear down则每执行一个scenario都会在最后执行tear down
它是以三个或者更多的_下划线组成,比如

___
* 关机睡觉

注释

无任何符号开头的句子便是注释,比如

这里是注释

Gauge从入门到精通——[2]语法相关推荐

  1. 1、ASP.NET MVC入门到精通——新语法

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 在学习ASP.NET MVC之前,有必要先了解一下C#3.0所带来的新的语法特性,这一点尤为重要,因为在MVC项目中我们利用C#3.0的新特 ...

  2. Markdown 从入门到精通

    Markdown 从入门到精通 Markdown 语法各平台和工具略有不同,此处以 Typora 为准. <常用软件网站推荐> 一文中,写作工具推荐 中有提到 推荐 Markdown,也提 ...

  3. 《Python入门到精通》Python基础语法

    「作者主页」:士别三日wyx   此文章已录入专栏<Python入门到精通>   2021最新版Python小白教程,针对0基础小白和基础薄弱的伙伴学习 Python基础语法 1. Hel ...

  4. python语法基础语法_Python基本语法[二],python入门到精通[四]

    在上一篇博客Python基本语法,python入门到精通[二]已经为大家简单介绍了一下python的基本语法,上一篇博客的基本语法只是一个预览版的,目的是让大家对python的基本语法有个大概的了解. ...

  5. 《Java 开发从入门到精通》—— 2.2 编写第一段Java程序

    本节书摘来异步社区<Java 开发从入门到精通>一书中的第2章,第2.2节,作者: 扶松柏 , 陈小玉,更多章节内容可以访问云栖社区"异步社区"公众号查看. 2.2 编 ...

  6. Java学习从入门到精通的学习建议

    想要学好java技术,首先打好基础很重要,不论学什么基础都是重中之重,学习Java更是如此.如:基础语法.核心类库.面向对象编程.异常.集合.IO流等基础如果学不好,那么后边更深入的语法也不容易学会. ...

  7. MAT入门到精通(二)

    点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! 阅读本文大概需要6分钟. 上一篇文章MAT入门到精通(一)介绍了MAT的使用场景和基本概念,这篇文 ...

  8. Python从入门到精通 - 入门篇 (下)

    上一讲回顾:Python从入门到精通 - 入门篇 (上) 接着上篇继续后面两个章节,函数和解析式. 4 函数 Python 里函数太重要了 (说的好像在别的语言中函数不重要似的).函数的通用好处就不用 ...

  9. 《Visual C++ 开发从入门到精通》——2.7 变量

    本节书摘来自异步社区出版社<Visual C++ 开发从入门到精通>一书中的第2章,第2.7节,作者: 王东华 , 李樱,更多章节内容可以访问云栖社区"异步社区"公众号 ...

最新文章

  1. 2021年大数据ELK(十三):Elasticsearch编程(添加职位数据)
  2. BERT各个场景实例代码
  3. from developer to data scientist cros entopy
  4. 编码,深浅拷贝和文件操作
  5. Struts2笔记——result结果类型
  6. 错误 - 无法访问IIS元数据库
  7. MOBA项目问题记录
  8. [密码学] ElGamal加密算法与离散对数
  9. NYOJ 52 无聊的小明
  10. 再过四十年,你的女朋友可能是个美丽的机器人!不信你看
  11. 如何评价百度新目标:Everyone can AI ?| 在现场
  12. 北京购房攻略(4.17)
  13. CSP202104-4 校门外的树
  14. JS中onblur总结
  15. 10大必看的经典恐怖漫画
  16. 《增长黑客》Sean Ellis epub+mobi+azw3
  17. 数据库相关岗位面试准备建议
  18. Matlab 版本对照
  19. 【Pytorch】data.norm(几种范数(norm)的详细介绍)
  20. 计算机远程用户关机指令,详细介绍一个远程关机命令

热门文章

  1. arcpy 诸多操作教程代码 读取shp保存到mxd等
  2. 恒玄BES调试笔记-BES2500蓝牙地址和蓝牙名称api
  3. 恒玄BES调试笔记-BES2500如何打开NS算法
  4. 精细化耕耘是B2C转战B2B良好的开端
  5. Efficient reversible data hiding for JPEG images with multiple histograms modification(论文阅读)
  6. 【Android】BlockCanary简介
  7. STM32 I2C通信协议+CubeMx配置
  8. JavaWeb项目--网上商城 (6-1)
  9. BFS【bzoj1667】: [Usaco2006 Oct]Cows on Skates滑旱冰的奶牛
  10. 交换机对数据帧的转发和过滤