He estado usando pepino + webrat, pero necesitaba una compatibilidad adicional con Rails 3 y pruebas de javascript cambiadas a capibara + selenio. Actualmente estoy en Rails 3.0.7, Cucumber 0.10.2, caybara 1.0.0.beta1.Pepino + Capibara + Selenio firefox abre example.com no es mi aplicación
Problema: Cuando ejecuto un escenario de JavaScript, firefox abre "http://www.iana.org/domains/example/" o "www.example.com" en lugar de mi aplicación de rieles.
Estoy seguro de que es solo una pequeña configuración que me falta, pero no puedo encontrarla y esto me ha dejado perplejo durante un par de días.
De todos modos, mi Gemfile lee:
group :development, :test do
gem 'cucumber'
gem 'cucumber-rails', ">= 0.3.2"
gem 'pickle'
gem "launchy"
gem "rspec-rails"
gem "Selenium"
gem "selenium-client"
gem "selenium-webdriver"
gem "database_cleaner"
gem "factory_girl_rails"
gem "capybara"
gem "escape_utils"
end
La característica es:
@wip
@javascript
Scenario: Calculate 1 recipe and be deducted a credit
Given the following page records
| name | permalink |
| home | home |
And the following role records
| name |
| SuperAdmin |
| Admin |
| Customer |
When I register "adam" with password "password"
And I go to the index
Then I should see "5 credits"
El paso que se abre la ventana de Firefox:
When /^I am logged in as "([^"]*)" with password "([^"]*)"$/ do |username, password|
unless username.blank?
visit(root_path)
fill_in "user_session_username", :with => username
fill_in "user_session_password", :with => password
click_button "login"
page.should have_content("Successfully logged in!")
end
end
mi características/soporte/env. rb:
require 'cucumber/rails'
require 'factory_girl'
require 'ruby-debug'
require 'selenium/client'
# require 'capybara/cucumber' commented out because it doesn't want to work with it in
Capybara.default_driver = :selenium
Capybara.server_boot_timeout = 50
Capybara.default_selector = :css
begin
DatabaseCleaner.strategy = :truncation
rescue NameError
raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."
end
símbolo del sistema dice:
When I register "adam" with password "password" # features/step_definiti
ons/web_steps.rb:229
no link with title, id or text 'register' found (Capybara::ElementNotFound
)
(eval):2:in `click_link'
./features/step_definitions/web_steps.rb:232:in `/^I register "([^"]*)" wi
th password "([^"]*)"$/'
features\credit_behaviour.feature:30:in `When I register "adam" with passw
ord "password"'
Soy bastante nuevo a Rails y Ruby por lo que será fácil en mí con alguna sugerencia, por favor, decir que cualquier ayuda sería muy apreciada.
¿Significa que está utilizando "ruta" en lugar de "url" en cada prueba? ¿O encontró una forma mejor (tal vez ajustar el host o algo así?) –
sí, estoy usando _path en lugar de _url. No estoy seguro de si es la manera "correcta" de hacerlo, pero funciona por ahora. – RickyD
De acuerdo con el jnicklas, quiere asegurarse de que está utilizando _path y no _url, ya que puede tener consecuencias no deseadas. – Galaxy