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)