此页面介绍了 Ruby 或 Ruby on Rails 环境的工具。
IDE
RubyMine
RubyMine 是一个 Ruby 和 Rails IDE。
构建工具
Cucumber 可以通过多种方式运行。请注意,rake cucumber
、cucumber features
和 autotest
(使用 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 cucumber
或 rake 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.start
和 DatabaseCleaner.clean
。可以禁用此默认行为。有关详细信息,请参见 cucumber-rails README。
资源
要详细了解 cucumber-rails
集成和协助的工具,请参阅 DatabaseCleaner 和 Capybara 的 README。