capybara4--安装cucumber

capybara是一个简单的API,它提供了抽象层在你真实自动化库之上。如果它帮助,认为capybara是你的翻译,你告诉它做一些事情,它将优雅的将命令转换为你应用驱动的API。

所以当我们使用capybara进行翻译时,我们需要告诉capybara做什么并且需要一个API自动化库去进行翻译。
capybara是一个非常灵活的库,
通过这本书我们将看到它在各种场景中应用。然而。目前为止最常见的情景是应用cucumber作为capybara测试驱动,去驱动selenium webdriver 开展浏览器自动化。
当cucumber被调用来解析这些简单易懂的英语场景时,它将使用正则表达式去将这些匹配

cucumber介绍

cucumber是一种可以使用文本描述语言来执行自动测试用例的工具,使用的语言叫做Gherkin.

Gherkin用于描述软件的行为而不需要了解具体的实现,使用Gherkin主要有两个目的文档和自动测试用例(我们希望能够和手工测试用例也统一)。 Gherkin支持超过40种语言,包括英文、中文。 Gherkin可以在任何地方新增注释,注释以#开头,每一个文件都是已.feature结尾,在feature文件中输入功能描述、场景、步骤,当执行这个功能时每一个步骤都需要编写ruby代码块来实现具体的功能,当前cucumber支持多种语言,除了ruby还可以使用java、javascript来编写具体定义层的实现。

以下是一个cucumber 场景的例子

Feature: Search for Videos on Baidu

Scenario: Search for Videos
    Given I am on the  baidu home page
    When I search for "capybara"
    Then search result are returned

我们设置可以采用中文实现场景
中文的话最前面必须增加# language: zh-CN

1
2
3
4
5
6
7
8
9
10
11
12
13
# language: zh-CN
功能:第一个中文程序
中文实现
场景:中文实现场景
假如当前是中文
当输入是测试
那么能看到中文测试

下面的流程图说明了从cucumber到底层驱动如何实现,capybara在整个流程里面充当是中间价的作用。

安装

1
gem install cucumber

如果你使用的是 bundler,只是需要添加以下代码到Gemfile:

1
2
3
group :test do
gem 'cucumber'
end

初始化features目录:

1
cucumber --init

查看完帮助列表:

1
cucumber --help

运行所有features:

1
cucumber

Cucumber-Rails

如果你使用capybara 来测试rails应用,你应该安装cucumber-rails gem 而不是标准的rails gem。
这个gem需要capybara和cucumber作为依赖。
所以当你安装cucumber-rails gem时,会自动安装这些依赖,我们只需要运行以下命令

1
gem install cucumber-rails

如果你使用bundle,只需要将以下代码添加进gemfile:

1
2
3
4
5
group :test, :development do
gem 'cucumber-rails', :require => false
# database_cleaner is not required, but highly recommended
gem 'database_cleaner'
end

然后运行

1
bundle install

运行生成器帮助我们生成目录

1
rails generate cucumber:install