rails rack_test feature example and ruby testing tdd capybara

rack_test - ¿Cómo usar el carpincho en Ruby puro(sin rieles)?



ruby on rails selenium (3)

Estoy tratando de ejecutar Capybara en un simple script de Ruby, es decir, sin / fuera de Rails. Aquí está el guión:

require ''rubygems'' require ''capybara'' require ''capybara/dsl'' include Capybara Capybara.current_driver = :selenium Capybara.app_host = ''http://www.google.com'' visit(''/'')

El problema es que cuando ejecuto esto obtengo este error:

NameError: uninitialized constant Capybara::Session at top level in dsl.rb at line 52 method gem_original_require in custom_require.rb at line 36 method require in custom_require.rb at line 36 at top level in capybara_test.rb at line 3 method gem_original_require in custom_require.rb at line 31 method require in custom_require.rb at line 31 at top level in capybara_test.rb at line

¿Qué estoy haciendo mal?

Algo más de información:

  • Mac OS X 10.5
  • ruby 1.8.6 (2009-06-08 patchlevel 369) [universal-darwin9.0]
  • carpincho (0.3.9)

¡Gracias!

Neal

Nota: Según el comentario de jnicklas, probé esto, que coincide con el nuevo archivo README más de cerca:

require ''rubygems'' require ''capybara'' require ''capybara/dsl'' Capybara.default_driver = :selenium Capybara.app_host = ''http://www.google.com'' module MyCapybaraTest include Capybara def test_google visit(''/'') end end

Lamentablemente, sigo viendo el mismo error:

NameError: uninitialized constant Capybara::Session

¿Pensamientos?

¡Gracias!


Aquí hay algo que parece funcionar para mí:

require ''rubygems'' require ''capybara'' require ''capybara/dsl'' Capybara.run_server = false Capybara.current_driver = :selenium Capybara.app_host = ''http://www.google.com'' module MyCapybaraTest class Test include Capybara::DSL def test_google visit(''/'') end end end t = MyCapybaraTest::Test.new t.test_google


Muestra que incluso la documentación incorrecta vive para siempre. El README Capybara solía recomendar incluir Capybara en el espacio de nombres global, esta es una muy mala idea, y estropea cualquier cantidad de cosas al azar. Debe incluir Capybara en su propio módulo o clase y usar eso en su lugar.

Consulte el README para conocer las mejores prácticas actuales.


Por favor, consulte este ejemplo de CapybaraRspec101 y bifurque.

Es un pequeño ejemplo para pruebas de aceptación en http://www.hi5.com usando desde cero:

  • Capybara
  • Rspec
  • Selenium-webdriver

Todas las instrucciones están en el repositorio