Behave驱动开发 - 工具
开发团队经常错误地认为BDD是一个工具框架。实际上,BDD是一种开发方法而不是工具框架。然而,与其他开发方法一样,也有用于 BDD 的工具。
多种 BDD 工具可用于不同的平台和编程语言。他们是 -
Cucumber(Ruby 框架)
SpecFlow(.NET 框架)
Behave(Python 框架)
JBehave(Java 框架)
JBehave Web(与 Selenium 集成的 Java 框架)
Lettuce(Python框架)
Concordion(Java 框架)
Behat(PHP 框架)
Kahlan(PHP 框架)
DaSpec(JavaScript 框架)
Jasmine(JavaScript 框架)
Cucumber-js(JavaScript 框架)
Squish GUI Tester(适用于 JavaScript、Python、Perl、Ruby 和 Tcl 的 BDD GUI 测试工具)
Spock(Groovy 框架)
Yadda(Gherkin 语言支持 Jasmine(JavaScript 框架)等框架)
Cucumber
Cucumber 是全球使用的可执行规范的免费工具。Cucumber 让软件开发团队以纯文本方式描述软件的Behave方式。该文本以业务可读、特定于领域的语言编写,并用作文档、自动化测试和开发辅助,全部汇总为一种格式。您可以通过 Cucumber 使用四十多种不同的口语(英语、中文等)。
Cucumber – 主要特征
Cucumber的主要特点如下 -
Cucumber 可用于可执行规范、测试自动化和实时文档。
Cucumber 可与用任何语言编写的 Ruby、Java、NET、Flex 或 Web 应用程序配合使用。
Cucumber 支持更简洁的表测试 - 类似于 FIT 所做的。
Cucumber 通过将需求、自动化测试和文档融合为一个整体:验证软件的纯文本可执行规范,彻底改变了软件开发生命周期。
规格流
SpecFlow 是适用于 .NET 平台的 BDD 工具。SpecFlow 是一个开源项目。源代码托管在 GitHub 上。
SpecFlow 使用 Gherkin 语法来实现功能。Gherkin 格式由 Cucumber 引入,也被其他工具使用。Gherkin 语言作为 GitHub 上的一个项目进行维护 - https://github.com/cucumber/gherkin
表现
Behave 用于 Python 框架。
Behave 适用于存储在名为“features”的目录中的三种类型的文件 -
包含您的Behave场景的功能文件。
“steps”目录包含场景的 Python 步骤实现。
(可选)一些环境控制(在步骤、场景、功能或整个拍摄比赛之前和之后运行的代码)。
Behave特征是使用 Gherkin(经过一些修改)编写的,并命名为“name.feature”。
附加到功能和场景的标签可通过传递给它们的“功能”或“场景”对象在环境函数中使用。在这些对象上有一个名为“tags”的属性,它是附加的标签名称列表,按照它们在功能文件中找到的顺序排列。
对小Cucumber标准的修改 -
Behave 可以解析标准 Gherkin 文件并扩展 Gherkin 以允许小写步骤关键字,因为这些有时可以允许更具可读性的功能规范
莴苣
Lettuce是一个非常简单的基于Cucumber的BDD工具。它可以执行纯文本功能描述作为 Python 项目的自动化测试。Lettuce 的目标是 BDD 上最常见的任务。
Concordion
Concordion 是一个开源工具,用于自动化 Java 框架示例规范。
虽然核心功能很简单,但强大的扩展框架 API 允许您添加功能,例如使用 Excel 电子表格作为规范、向输出添加屏幕截图、显示日志记录信息等。
Concordion 允许您使用段落、表格和正确的标点符号以正常语言编写规范,而无需使用 Give/When/Then 的结构化语言。
Concordion 已被移植到其他语言,包括 -
C# (Concordion.NET)
Python(PyConcordion)
Ruby(RubyConcordion)