RubyMine 2025.2 Help

Cucumber

Cucumber 是一个用于行为驱动的 Ruby 开发的测试框架。 Cucumber 场景使用 Gherkin 语法编写,并存储在 .feature 文件中。 每个场景都有多个步骤,这些步骤链接到表示 Ruby 块的步骤定义。

RubyMine 与 Cucumber 集成,允许您运行测试、创建步骤定义、在功能和步骤定义之间导航等。 在本主题中,我们将介绍帮助您在 Ruby 开发中使用 Cucumber 的主要 IDE 功能。 要了解 RubyMine 如何帮助您在 JavaScript 开发中使用 Cucumber,请参阅 Cucumber.js

先决条件

在 RubyMine 中使用 Cucumber 之前,请确保:

  • 已安装并启用了 Gherkin 仓库插件。 如需更多信息,请参阅 管理插件

  • 根据项目类型(Ruby 或 Rails),将 'cucumber' 或 'cucumber-rails' gems 添加到 Gemfile 并安装到项目的解释器中。 从 Bundler 主题中了解如何使用 RubyMine 安装 gems。

在 Rails 应用程序中启用 Cucumber 支持

  1. 将 'cucumber-rails' gem 添加到项目的 test 组的 Gemfile 安装 它。

  2. 转到 工具 | 运行 Rails 生成器 Ctrl+Alt+G 并开始输入 cucumber:install。 从列表中选择相应的命令并按 Enter

    运行生成器
  3. 设置 Cucumber 支持 对话框中,选择 Cucumber 的测试框架,指定所需选项,然后单击 确定

    设置 Cucumber 支持

    RubyMine 将运行 cucumber:install 生成器,该生成器会在您的 Rails 项目中设置 Cucumber,并在 功能 目录中生成必要的文件。 运行此生成器后,您还将获得一个名为 cucumber 的新 Rake 任务,可用于在 RubyMine 中 运行 Cucumber 测试

创建功能文件

  1. Project 工具窗口中,右键单击应创建功能文件的目录。

  2. 从此目录的上下文菜单中,选择 新建文件 Alt+Insert ,并创建一个带有 .feature 扩展名的文件。

    新建功能文件
  3. 在创建的功能文件中,输入您的场景。 例如,我们将使用 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 会检测并高亮显示缺少定义的步骤。 您可以通过以下方式生成缺失的步骤定义:

  1. 请将文本光标放在没有定义的步骤处,按 Alt+Enter ,然后选择 创建步骤定义创建所有步骤定义

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

    选择步骤定义文件

    按下 Enter

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

    创建新步骤定义文件

    点击 确定

  4. 在打开的 Ruby 文件中编写步骤定义代码。

    步骤定义代码

运行测试

RubyMine 允许您运行单个 Cucumber 场景或指定文件夹或文件中的所有场景。 您还可以使用 Rake 任务运行场景。

从文件夹运行多个测试

  • Project 视图中,右键单击所需的文件夹并选择 运行 '所有功能在 ...'

    从项目视图运行测试

    要运行特定子集的测试,例如,仅运行与某个名称匹配或标记有特定标签的场景,请自定义 Cucumber 运行/调试配置

从编辑器运行测试

要从编辑器运行测试,请执行以下操作之一:

  • 打开 .feature 文件,然后单击所需功能或场景旁边边栏中的 运行 按钮。 然后,从上下文菜单中选择所需的运行命令。

    从边栏运行测试
  • 将光标放在所需的功能或场景上,按 Alt+Enter ,选择所需的运行操作,然后按 Enter

    使用 Alt Enter 运行测试

使用 Rake 任务运行测试

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

    使用 rake 运行 Cucumber

执行测试后,您可以在 运行 工具窗口中分析 结果

Cucumber 运行/调试配置

当您使用上下文菜单或从编辑器运行 Cucumber 测试时,RubyMine 会自动创建一个相应的 Cucumber 临时配置 ,您可以保存它。 如果需要,您可以从预定义模板中 手动 创建 Cucumber 运行/调试配置。

要自定义并运行创建的配置,请执行以下操作:

  1. Ctrl+Shift+A 并开始输入 编辑配置。 选择 编辑配置 并按 Enter

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

    运行/调试配置

    例如,您可以指定以下设置:

    选项

    描述

    模式

    选择是运行目录或文件中的所有功能。

    功能文件夹 / 功能文件

    指定包含所需功能的文件夹/文件的完整路径。

    元素名称过滤器

    允许您仅运行与某个名称匹配的场景。 这可以是功能、场景、场景大纲或示例块名称的子字符串。 在 Cucumber 帮助 中了解更多信息。

    标签过滤器

    指定标签以运行功能的子集。 在 标签逻辑 中了解更多信息。

    运行选项

    指定运行 Cucumber 测试所需的选项。 例如, -r features 参数会在运行测试之前从 功能 文件夹加载文件。

    'Cucumber' gem

    选择用于运行测试的 Cucumber gem。

    使用自定义 Cucumber 运行脚本

    如果您想使用替代的 Cucumber 运行脚本,请启用此选项。 您可以在文本字段中输入 Cucumber 运行脚本的完整路径,或单击 浏览 ,并在打开的对话框中选择所需的运行脚本。

    点击 确定 以保存运行/调试配置。

  3. 要运行保存的配置,请按两次 Ctrl ,开始输入配置名称,从列表中选择它并按 Enter

    使用运行任意内容运行 Cucumber

场景大纲和示例

Scenario Outline 可用于以不同的值组合多次运行相同的场景。 这些值存储在 Examples 表中。 您可以从 Cucumber 帮助 中了解更多信息。

RubyMine 允许您将场景转换为大纲并生成缺失的 Examples 表。

将场景转换为大纲

  1. 将光标放在所需的场景上并按 Alt+Enter

  2. 请选择 将场景转换为大纲 并按 Enter

    将场景转换为大纲

    RubyMine 会将 Scenario 更改为 Scenario Outline 并添加 Examples 表。

    将场景转换为大纲

在场景大纲中创建示例

RubyMine 提供了一种检查以检测场景大纲中缺失的示例。 要创建缺失的示例,请执行以下操作:

  1. 将光标放在高亮显示的场景大纲上并按 Alt+Enter

  2. 请选择 创建示例部分 并按 Enter

    在场景大纲中创建示例

    RubyMine 将创建带有标题行的 Examples 表。

  • 要从 .feature 文件中的步骤跳转到步骤定义,请按住 Ctrl ,将鼠标悬停在步骤上,并在其变成链接时点击该步骤。

    从功能导航到步骤定义

配置语法高亮

您可以通过以下方式配置 Cucumber 感知的语法高亮:

  1. 设置 对话框 (Ctrl+Alt+S) 中,前往 编辑器 | 配色方案 | Cucumber

  2. 选择配色方案,接受从默认设置继承的高亮设置,或按照 配置颜色和字体 中的描述进行自定义。

最后修改日期: 2025年 9月 26日