如何在 Windows
⚡ 智能摘要
Cucumber 安装在 Windows 需要四个部分:Ruby 及其开发工具包、 Cucumber gem 本身、RubyMine 之类的编辑器以及浏览器驱动库。每项都只需几分钟即可安装完成。
Cucumber 安装过程看起来可能很繁琐,但只要按正确的顺序安装各个部件,其实相对容易。以下是安装所需组件的路线图。 Cucumber 工作。
安装前提条件 Cucumber on Windows
Cucumber 它以 Ruby gem 的形式分发,因此必须安装 Ruby 才能正常工作。下载任何内容之前,请确认以下事项:
- Windows 10 或更高版本,64 位。 除非您依赖 32 位本机 DLL 或 COM 对象,否则 RubyInstaller 不再建议使用 32 位版本。
- 管理员权限。 安装程序会将数据写入 Program Files 目录并编辑 PATH 环境变量。
- 互联网连接。 以下两个 gem install 命令均从 RubyGems 获取软件包。
- 大约 1 GB 的可用磁盘空间 Ruby 加上 MSYS2 开发工具包,如果再加上 RubyMine,则需要更多。
- 一款用于自动化的浏览器。 Watir 驱动 Chrome、Edge 或 Firefox 通过 Selenium所以至少要安装一个。
两条指令值得记住,以备后用: ruby -v 打印 Ruby 版本信息, gem -v 打印 RubyGems 版本。如果其中任何一项失败,则说明 PATH 环境变量未更新,应重新运行安装程序,而不是进行调试。
安装 Ruby 和 DevKit
首先安装 Ruby+Devkit 包,它捆绑了带有 C 扩展的 gem 所需的编译器工具链。
步骤1)前往 https://rubyinstaller.org/downloads/ 然后选择安装程序。下载页面如下所示。
⚠️ 版本说明: 原教程中提到的独立 DevKit 归档文件已被 MSYS2 工具链取代。 Ruby+Devkit 安装程序将软件包作为可选组件提供。RubyInstaller 目前建议新用户使用 Ruby+Devkit 4.0.X (x64) 版本,该工具包稍后会进行更新。 ridk 安装 而不是重新运行 dk.rb。以下步骤其他部分保持不变。
步骤 2)打开下载的文件。在第一个屏幕上:
- 接受许可
- 单击“下一步”按钮
步骤 3)在下一个屏幕上:
- 选择您的安装目录
- 选择所有选项
- 单击安装
步骤 4)在接下来的屏幕上,单击“下一步”。
步骤 5)等待安装完成。
步骤 6)点击完成。
步骤 7)安装完成后,从以下位置运行 Ruby: Windows 开始菜单。
步骤 8)您将看到一个类似于 Ruby 命令提示符的界面。 Windows 命令窗口。
安装 Cucumber
将 Ruby 添加到 PATH 环境变量后,gem 本身只需一条命令即可运行。
步骤 1)输入 gem install cucumber 在 Ruby 命令提示符中。此命令会下载并安装。 Cucumber 在命令行中直接操作。
几秒钟后 Cucumber 安装过程开始,并报告它获取的每个依赖项。
步骤 2)验证是否 Cucumber 安装成功,请键入 cucumber 版本注意两个连字符——单个连字符不是有效的长选项。
安装 IDE RubyMine
虽然并非必须使用编辑器,但 RubyMine 支持 Gherkin 代码,可以直接跳转到代码定义。请按照以下步骤进行安装。
步骤 1)单击“下一步”继续 RubyMine 安装。
步骤 2)选择安装位置。
步骤 3)设置安装选项。
步骤 4)选择“开始”菜单文件夹。
步骤 5)点击安装。
步骤 6)点击完成。
步骤7)选择 不要导入设置.
步骤 8)点击“评估”。
步骤 9)接受许可协议。
步骤 10)选择“跳过剩余步骤”并设置默认值。
步骤 11)打开编辑器。
步骤 12)创建一个新项目。
⚠️ 版本说明: RubyMine 是付费软件 JetBrains 该产品提供限时试用,点击步骤 8 中的“试用”按钮即可启动试用。另有免费替代方案。 Visual Studio Code 用 Ruby 和 Cucumber (Gherkin)扩展;本教程的其余部分在两个编辑器中操作方式相同。
安装 watir-webdriver
Cucumber 它只负责执行这些步骤。还需要其他程序打开浏览器,而这项工作属于…… Watir一个 Ruby 封装器 Selenium如果您更喜欢直接驱动浏览器,同一个项目也可以调用一个普通的浏览器。 WebDriver脚本.
步骤1)点击 使用 Ruby 启动命令提示符 并运行安装命令 gem install watir-webdriver.
步骤 2)watir-webdriver gem 安装成功。
⚠️ 弃用说明: watir-webdriver gem 被合并到主程序中 水 宝石 Watir 6.0 版本,其自身的存储库现在仅将用户指向替代版本。在新机器上运行 gem install watir 相反,上面这段历史命令被保留下来,因为截图显示的就是它。
Cucumber 项目文件夹结构
Cucumber 它通过约定而非配置来发现文件,因此布局比表面看起来更重要。一个最小的项目结构如下:
| 途径 | Holds |
|---|---|
| 特征/ | 每个 .feature 文件都是用 Gherkin 编写的。 Cucumber 默认在此处搜索。 |
| 特征/步骤定义/ | Ruby 文件中与 Given、When 和 Then 行完全匹配的代码块。 |
| 功能/支持/ | 在任何步骤运行之前加载的设置代码,例如 env.rb,浏览器通常在此处打开和关闭。 |
两条规则可以避免日后很多混乱。 Cucumber 当关键字与某个步骤匹配时,会忽略该关键字。 假设我有一个变量 a 和 然后我有一个变量 a 与同一定义相冲突。并且,功能文件中的步骤文本必须与步骤文件中的正则表达式完全匹配,包括标点符号。
名字 Cucumber 脚本
下面的示例将两个数字相乘,这足以证明功能文件、步骤文件和 gem 都在相互通信。
步骤 1)从以下位置打开 RubyMine 编辑器: Windows 开始菜单。
RubyMine 控制面板如下所示。
步骤 2)在 RubyMine 编辑器中创建一个新项目。
给项目命名并确定地点,然后确认。
步骤 3)创建文件目录。
新目录出现在项目树中。
步骤 4)创建并保存文件 你的文件夹/功能/ 具有名称 你的文件名.feature.
确认文件名以 .feature 为扩展名。
步骤 5)要执行我们的场景,请将以下命令保存到功能文件中。
代码:
Feature: Multiplication I multiply two numbers Scenario: multiply a and b Given I have variable a And I have variable b When I multiplication a and b Then I display the Result
步骤 6)现在运行第一个功能文件。
点击 使用 Ruby 启动命令提示符 从项目文件夹运行 cucumber 命令。
控制台报告的结果如下所示。
步骤 7)创建功能文件的步骤定义文件。
在 RubyMine 编辑器中创建一个新文件夹。
步骤 8)将文件保存到 你的文件夹/功能/步骤定义 具有名称 test_step.rb.
步骤 9)将以下代码写入 step 文件。
代码:
Given(/^I have variable a$/) do @a = 50 end And(/^I have variable b$/) do @b = 70 end When(/^I multiplication a and b$/) do @mul = @a * @b end Then(/^I display the Result$/) do puts "Multiplication of #{@a} and #{@b} is #{@mul}" end
步骤 10)现在再次运行功能文件。
结果会打印在控制台中,并且每个步骤都会被报告为已通过。
相当常见 Cucumber 安装错误及解决方法
这个阶段的大多数故障都来自环境,而不是来自…… Cucumber这些是值得一眼认出的。
| 留言 | 原因 | 固定 |
|---|---|---|
| “cucumber”未被识别为内部或外部命令。 | Ruby bin 目录不在 PATH 环境变量中,或者您正在使用纯 cmd 窗口。 | 可选 使用 Ruby 启动命令提示符或者重新安装 Ruby,并选中 PATH 选项。 |
| SSL_connect 返回值=1 错误号=0 状态=错误:证书验证失败 | RubyGems 无法验证证书链,通常证书链位于企业代理之后。 | 使用 gem update --system 更新 RubyGems,或者使用 --http-proxy 开关配置代理。 |
| 错误:构建 gem 原生扩展失败 | MSYS2开发工具包缺失。 | 运行 ridk install 并选择 MSYS2 和 MINGW 工具链选项。 |
| 无效选项:-version | 较长的选项用单个连字符表示。 | 输入 cucumber-version,中间用两个连字符连接。 |
| 未定义步骤,下方显示建议代码片段。 | Cucumber 找到了特征文件,但没有找到匹配的定义。 | 将建议的代码片段粘贴到 features/step_definitions 目录下的一个文件中,并填写正文。 |
| 无法加载该文件 — watir | 安装的 gem 包适用于与当前运行的 Ruby 版本不同的 Ruby 版本。 | 在同一提示符下检查 ruby -v 和 gem list watir,然后重新安装该 gem。 |
一旦倍增方案报告通过,安装即完成,同一个项目可以扩展为一个完整的项目。 自动化测试 套房,无论它是否用于 功能测试 或每晚 回归测试.












































