研究cucumber后需要注意的要点汇总
1.运行时,必须要在cucumber_framework这个文件夹下运行feature文件夹下的.feature的文件。不能进入feature文件夹下运行!!!
2.custom_steps.rb这个文件是用ruby语言开发行为的步骤,以便机器可以识别自然语言。而selenium-cucumber这个包中已经含有很多封装好方法。以后可能要在这个文件中封装步骤的方法。
3.featrue文件被称之为特性文件。
4.在cucumber中,每个测试用例成为场景(Scenario),多个场景组成特性,每个场景包含多个步骤。
5.特性文件存储面向业务的部分,为了能够让cucumber正确读取文件,这些内容必须基于一套名为Gherkin的语法规则。往下一层,步骤定义把面向业务语言编写的步骤翻译成ruby代码。
6.TODO类似于注释,忽略。
7.有一个重要的概念需要掌握:每一个场景都必须有独立的意义,且能够不依赖任何其他场景独立运行。
8.cucumber会载入step_definitions目录下的所有文件。
9.cucumber会存储代码块,之后如果遇到匹配的步骤就执行。
10.Given、When、Then是相同的,因为cucumber在匹配步骤时是忽略这些关键字的,在下层实现中,所有这些关键字方法都是:Cucumber::RbDsl#register_rb_step_definition的别名,正则表达式主要是为了匹配步骤中的主要文本。
11.捕获参数:捕获组(capture group)和通配符(wildcard)
12.显示地告诉cucumber从features根目录加载步骤定义代码:
cucumber feature/某文件.feature -r features
13、可在场景前加上标签:@widgets
14、给场景打标签的三个主要原因:
14.1文档:你只想用标签给一些特定的场景加上标注,例如给他们加上一个源于项目管理工具的ID
14.2过滤:cucumber允许将标签作为过滤器,用来挑选要运行或报告的特定场景。甚至可以让cucumber在特定标签出现次数太多的情况下运行失败。
14.3钩子:每当一个带有特殊标签的场景即将开始或刚刚结束时运行一下Ruby代码块。
下面的命令在运行cucumberi是只选择带有特定标签的场景:
cucumber --tags @javascript
15.数据表示为了运行更多的case而设计的表。