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