огурец - RackTest не работает над тестом, на котором успешно завершились и Selenium, и WebKit - PullRequest
0 голосов
/ 27 марта 2012

Я использую Cucumber с Capybara для создания своей инфраструктуры тестирования для сайта.Я нашел способ с помощью хуков переключаться между драйвером Capybara в Cucumber.Я хочу иметь возможность просто использовать RackTest, когда я не тестирую JavaScript, потому что я был уверен, что RackTest быстрее, так как он не отображает страницу.Сейчас у меня есть 3 идентичных теста, которые переходят на Google и проверяют, что в заголовке написано Google.Каждый тест использует другой драйвер.Тесты Selenium и WebKit работают нормально, но RackTest не проходит в тесте ". Я должен увидеть заголовок" Google "".К этому сообщению я приложил копию своей функции, шагов и тестовых камней.

Функция:

Feature: Rack Test
  In order to run test faster
  As a tester
  I want to use Rack Test to preform all non-javascript related test

  Scenario: Visit a page and check title
    When  I go to "http://www.google.com"
    Then  I should see the title "Google"

  @firefox
  Scenario: Visit a page and check title in Firefox
    When  I go to "http://www.google.com"
    Then  I should see the title "Google"

  @webkit
  Scenario: Visit a page and check title in WebKit
    When  I go to "http://www.google.com"
    Then  I should see the title "Google"

Шаги:

When /^I go to "(http:\/\/[^"]*)"$/ do |url|
  visit url
end


Then /^I should see the title "([^"]*)"$/ do |title_cont|
  page.should have_selector "title", text: title_cont
end

Крючки:

Before('@firefox') do
  Capybara.current_driver = :selenium
end

Before('@webkit') do
  Capybara.current_driver = :webkit
end

After('@firefox, @webkit') do
  Capybara.use_default_driver
end

Gemfile:

group :test do
  gem 'capybara'
  gem 'capybara-webkit'
  gem 'cucumber'
  gem 'cucumber-rails'
  gem 'database_cleaner'
  gem 'factory_girl_rails'
  gem "rack-test", require: "rack/test"
  gem 'rspec'
  gem 'selenium-webdriver'
end

1 Ответ

1 голос
/ 27 марта 2012

Это потому, что rack-test может тестировать только приложения Rack (например, ваш сайт Ruby On Rails).Это не браузерное решение, как Selenium и WebKit.Вот почему rack-test не может получить доступ к внешним веб-сайтам (в вашем случае Google).

...