此页面介绍了 Ruby 或 Ruby on Rails 环境的工具。

IDE

RubyMine

RubyMine 是一个 Ruby 和 Rails IDE。

构建工具

Cucumber 可以通过多种方式运行。请注意,rake cucumbercucumber featuresautotest(使用 ENV AUTOFEATURE=true)不会在给定相同的功能和步骤定义的情况下产生相同的结果。

Rake

从命令行运行 rake cucumber 提供了运行 Cucumber 测试的最简单方法。

使用 Rake 需要一个具有 features 任务定义的 Rakefile。例如

require 'rubygems'
require 'cucumber'
require 'cucumber/rake/task'

Cucumber::Rake::Task.new(:features) do |t|
  t.cucumber_opts = "--format pretty" # Any valid command line option can go here.
end

这将使用漂亮格式化程序运行所有功能。

请注意,我们如何使用 cucumber_opts 访问器来定义传递给 Cucumber 的参数。

如果您正在使用 Ruby on Rails,此任务已为您定义。

现在,您可以使用 Rake 运行 Cucumber

rake features

Cucumber 附带的 rake 脚本执行了获取测试数据库和必要的库正确加载所需的许多后台操作。实际上,一个重要的习惯是,在执行迁移后立即将 Cucumber 作为 rake 任务运行。这样可以确保测试数据库模式与开发数据库模式保持同步。您可以在迁移后的第一次 Cucumber 运行之前运行 rake db:test:prepare 来获得相同的效果,但养成运行 rake cucumberrake cucumber:wip 的习惯可能更好。

Cucumber Rake 任务识别 @wip 标签,因此 rake cucumber:wip 只会运行标记为 @wip 的场景。

例如,给定一个包含以下内容的特征文件

Feature: .  .  .

  Scenario: A

  @wip
  Scenario: B

  Scenario: C

然后运行命令 rake cucumber:wip 将只运行场景 B 中的步骤,而运行 rake cucumber:ok 将运行除场景 B 之外的所有场景中的步骤。

在 Rake 任务中使用配置文件

对于经常测试的复杂功能运行,将命令行参数保存为 Cucumber 配置文件 会很好。

定义了一些配置文件后,您可以在 Rake 任务中使用它们,如下所示

require 'rubygems'
require 'cucumber'
require 'cucumber/rake/task'

namespace :features do
  Cucumber::Rake::Task.new(:non_js) do |t|
    t.profile = "webrat"
  end

  Cucumber::Rake::Task.new(:selenium) do |t|
    t.profile = "selenium"
  end
end

保护您的生产机器免受 Cucumber 的影响

由于 Rake 任务在开发和生产系统上使用,因此通常最好在 Cucumber 任务周围设置一个保护,以防止您的生产机器需要安装 Cucumber。

下面是如何执行此操作的示例。此示例是 Cucumber 为 Rails 项目生成的 Rake 任务,但相同的想法适用于使用 Cucumber 和 Rake 的任何项目

require 'rubygems'

begin
  require 'cucumber'
  require 'cucumber/rake/task'

  Cucumber::Rake::Task.new(:features) do |t|
    t.cucumber_opts = "--format pretty"
  end

  task features: 'db:test:prepare'
rescue LoadError
  desc 'Cucumber rake task not available'
  task :features do
    abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin'
  end
end

Ruby on Rails

cucumber-rails

cucumber-rails 是一个 RubyGem,它为 Cucumber 提供了 Ruby on Rails 生成器,并为 Capybara 和 DatabaseCleaner 提供了特殊支持。

安装

cucumber:install 生成器在您的 Rails 项目中设置 Cucumber。它会在 features/ 目录中生成必要的文件。运行此生成器后,您还会获得一个名为 cucumber 的新 rake 任务。

有关更多详细信息,请参见 rails generate cucumber:install --help

用法

默认情况下,cucumber-rails 会在您的 Cucumber 场景之前和之后运行 DatabaseCleaner.startDatabaseCleaner.clean。可以禁用此默认行为。有关详细信息,请参见 cucumber-rails README

资源

要详细了解 cucumber-rails 集成和协助的工具,请参阅 DatabaseCleanerCapybara 的 README。

您可以帮助我们改进此文档。 编辑此页面.