Cucumber
Cucumber 是一个用于行为驱动的 Ruby 开发的测试框架。 Cucumber 场景使用 Gherkin 语法编写,并存储在 .feature 文件中。 每个场景都有多个步骤,这些步骤链接到表示 Ruby 块的步骤定义。
RubyMine 与 Cucumber 集成,允许您运行测试、创建步骤定义、在功能和步骤定义之间导航等。 在本主题中,我们将介绍帮助您在 Ruby 开发中使用 Cucumber 的主要 IDE 功能。 要了解 RubyMine 如何帮助您在 JavaScript 开发中使用 Cucumber,请参阅 Cucumber.js。
先决条件
在 RubyMine 中使用 Cucumber 之前,请确保:
在 Rails 应用程序中启用 Cucumber 支持
将 'cucumber-rails' gem 添加到项目的
test组的 Gemfile 并 安装 它。转到 Ctrl+Alt+G 并开始输入 cucumber:install。 从列表中选择相应的命令并按 Enter。

在 设置 Cucumber 支持 对话框中,选择 Cucumber 的测试框架,指定所需选项,然后单击 确定。

RubyMine 将运行
cucumber:install生成器,该生成器会在您的 Rails 项目中设置 Cucumber,并在 功能 目录中生成必要的文件。 运行此生成器后,您还将获得一个名为cucumber的新 Rake 任务,可用于在 RubyMine 中 运行 Cucumber 测试。
创建功能文件
在 Project 工具窗口中,右键单击应创建功能文件的目录。
从此目录的上下文菜单中,选择 Alt+Insert ,并创建一个带有 .feature 扩展名的文件。

在创建的功能文件中,输入您的场景。 例如,我们将使用 Cucumber 入门 中的代码片段:
Feature: Is it Friday yet? Everybody wants to know when it's Friday Scenario: Sunday isn't Friday Given today is Sunday When I ask whether it's Friday yet Then I should be told "Nope"由于没有步骤定义,这些步骤将被高亮显示为未解析。 请参阅 下一章 了解如何创建步骤定义。
创建步骤定义
当您编辑功能文件时,RubyMine 会检测并高亮显示缺少定义的步骤。 您可以通过以下方式生成缺失的步骤定义:
请将文本光标放在没有定义的步骤处,按 Alt+Enter ,然后选择 创建步骤定义 或 创建所有步骤定义。

选择是使用现有的步骤定义文件还是创建一个新的文件。

按下 Enter。
(可选)如果您选择了 创建新文件 ,请指定新文件的名称和用于编写定义的语言。

点击 确定。
在打开的 Ruby 文件中编写步骤定义代码。

运行测试
RubyMine 允许您运行单个 Cucumber 场景或指定文件夹或文件中的所有场景。 您还可以使用 Rake 任务运行场景。
从文件夹运行多个测试
在 Project 视图中,右键单击所需的文件夹并选择 运行 '所有功能在 ...'。

要运行特定子集的测试,例如,仅运行与某个名称匹配或标记有特定标签的场景,请自定义 Cucumber 运行/调试配置。
从编辑器运行测试
要从编辑器运行测试,请执行以下操作之一:
打开 .feature 文件,然后单击所需功能或场景旁边边栏中的 运行 按钮。 然后,从上下文菜单中选择所需的运行命令。

将光标放在所需的功能或场景上,按 Alt+Enter ,选择所需的运行操作,然后按 Enter。

使用 Rake 任务运行测试
请按两次 Ctrl 调出 运行任何内容 弹窗。 开始输入所需的任务名称,从列表中选择它并按 Enter。

执行测试后,您可以在 运行 工具窗口中分析 结果。
Cucumber 运行/调试配置
当您使用上下文菜单或从编辑器运行 Cucumber 测试时,RubyMine 会自动创建一个相应的 Cucumber 临时配置 ,您可以保存它。 如果需要,您可以从预定义模板中 手动 创建 Cucumber 运行/调试配置。
要自定义并运行创建的配置,请执行以下操作:
按 Ctrl+Shift+A 并开始输入 编辑配置。 选择 编辑配置 并按 Enter。

在打开的 运行/调试配置 对话框中,选择所需的配置,并指定其设置。

例如,您可以指定以下设置:
选项
描述
模式
选择是运行目录或文件中的所有功能。
功能文件夹 / 功能文件
指定包含所需功能的文件夹/文件的完整路径。
元素名称过滤器
允许您仅运行与某个名称匹配的场景。 这可以是功能、场景、场景大纲或示例块名称的子字符串。 在 Cucumber 帮助 中了解更多信息。
标签过滤器
指定标签以运行功能的子集。 在 标签逻辑 中了解更多信息。
运行选项
指定运行 Cucumber 测试所需的选项。 例如,
-r features参数会在运行测试之前从 功能 文件夹加载文件。'Cucumber' gem
选择用于运行测试的 Cucumber gem。
使用自定义 Cucumber 运行脚本
如果您想使用替代的 Cucumber 运行脚本,请启用此选项。 您可以在文本字段中输入 Cucumber 运行脚本的完整路径,或单击
,并在打开的对话框中选择所需的运行脚本。
点击 确定 以保存运行/调试配置。
要运行保存的配置,请按两次 Ctrl ,开始输入配置名称,从列表中选择它并按 Enter。

场景大纲和示例
Scenario Outline 可用于以不同的值组合多次运行相同的场景。 这些值存储在 Examples 表中。 您可以从 Cucumber 帮助 中了解更多信息。
RubyMine 允许您将场景转换为大纲并生成缺失的 Examples 表。
将场景转换为大纲
将光标放在所需的场景上并按 Alt+Enter。
请选择 将场景转换为大纲 并按 Enter。

RubyMine 会将
Scenario更改为Scenario Outline并添加Examples表。
在场景大纲中创建示例
RubyMine 提供了一种检查以检测场景大纲中缺失的示例。 要创建缺失的示例,请执行以下操作:
将光标放在高亮显示的场景大纲上并按 Alt+Enter。
请选择 创建示例部分 并按 Enter。

RubyMine 将创建带有标题行的
Examples表。
导航
要从 .feature 文件中的步骤跳转到步骤定义,请按住 Ctrl ,将鼠标悬停在步骤上,并在其变成链接时点击该步骤。

配置语法高亮
您可以通过以下方式配置 Cucumber 感知的语法高亮:
在 设置 对话框 (Ctrl+Alt+S) 中,前往 。
选择配色方案,接受从默认设置继承的高亮设置,或按照 配置颜色和字体 中的描述进行自定义。