what rails docs and macos ruby-on-rails-3 selenium cucumber capybara

macos - rails - rspec and capybara



El selenio no funciona con Cucumber/Capybara(fuera de la caja)-MacOSX (2)

Tengo problemas para obtener un ejemplo de pepino para que funcione con selenio. Estoy corriendo

  • Rails3
  • Pepino 0.10.0
  • Capibara 0.4.1.2

Leyendo el doco en https://github.com/jnicklas/capybara , parece que todo lo que necesito para obtener un ejemplo para ejecutar bajo selenio es hacer lo siguiente:

Paso 1: Prefijo el escenario con @javascript

@javascript Scenario: User does x ...

Paso 2: Configure env.rb para decirle a capybara qué controlador usar:

Capybara.javascript_driver = :selenium

Cuando corro:

bundle exec cucumber feature/myfeature.feature

Obtengo lo siguiente:

Using the default profile... F------------F Failing Scenarios: cucumber features/myfeature.feature:7 # Scenario: User does x 1 scenario (1 failed) 12 steps (12 skipped) 0m0.012s

Sin ventana de Firefox Nada. Corre, se cuelga y muere.

Para verificar si el capibara y el webliner de selenio funcionan, escribí el siguiente código:

require ''capybara'' require ''capybara/dsl'' Capybara.default_driver = :selenium class Test include Capybara def dotest visit(''http://www.stackoverflow.com'') end end Test.new.dotest

Y lo ejecutó usando:

bundle exec ruby /tmp/test.rb

Eso funciona. Firefox abre la ventana y navega a www.stackoverflow.com.

Entonces, ¿cómo puedo obtener información de diagnóstico para entender qué le está haciendo pepino al capibara?

Estoy ejecutando OSX10., Ruby 1.8.7 y Firefox 3.6.13.


Ok ... descubrí mi problema. En algún lugar de los tazones de pepino hay una dependencia de DatabaseCleaner que se activa una vez cuando usas el controlador de selenio. La declaración de falla:

F______________F

Me dijo que la falla estaba ocurriendo en la configuración y desmontaje. Pepino no estaba informando la excepción e incluso con el -b no hizo nada.

Cómo encontré el problema:

  1. Agregue ruby-debug como una dependencia de gema

  2. Agregar requiere "ruby-debug" para env.rb

  3. Agregué la siguiente declaración a env.rb:

Before do breakpoint; 0 end

  1. Corrió la función usando bundle exec. El depurador entró en acción.

  2. Escriba cat StandardError que indicará al depurador el punto de interrupción cuando se lanza "StandardError". StandardError es la clase base para todos los errores en Cucumber. Lo que queremos hacer es descubrir dónde se produce el error y por qué.

  3. Ingrese cont para indicarle al depurador que continúe

Después de agregar el limpiador de base de datos como una dependencia de gema, todo desapareció. Firefox comenzó a dispararse y las cosas comenzaron a funcionar según lo anunciado.


Has probado

bundle exec cucumber feature/myfeature.feature

!!