Cómo utilizar Carpincho en Ruby puro (sin Rieles)?

Estoy tratando de conseguir Carpincho que se ejecuta en un simple script en Ruby — es decir, sin/fuera de los Rieles. Aquí está la secuencia de comandos:

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 este me sale 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: de acuerdo con el comentario de jnicklas he probado este, que coincide con la nueva LÉAME 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

Por desgracia, todavía estoy viendo el mismo error:

NameError: uninitialized constant Capybara::Session

Pensamientos?

Gracias!

InformationsquelleAutor Neal Enssle | 2010-08-14

3 Kommentare

  1. 29

    Aquí 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
    • Esto es genial, pero el código gusta «de la página.debe have_content(‘Mi Cuenta’)» no parece funcionar. «debería» se define generalmente en el Kernel (creo), y no parece ser en este caso. He mirado alrededor, pero no podía inmediatamente a averiguar cómo solucionar este problema.
    • Es werid responder a casi 4 años de edad, comentario, pero en caso de que existan empleados que también son confusted, should (entonces) y expect (estilo actual) son proporcionados por el rspec-expectations joya. Con eso instalado, usted será capaz de tener expectativas como expect(page).to have_content "foo"
  2. 5

    Se va a mostrar que incluso la documentación incorrecta vidas para siempre. El Carpincho LÉAME solía recomendar a incluir Carpincho en el espacio de nombres global, este es un realmente mala idea, y se mete a cualquier número de cosas al azar. Usted debe incluir Carpincho en su propio módulo o clase y utilizar en su lugar.

    Compruebe el archivo LÉAME para las mejores prácticas actuales.

    • Gracias! Por desgracia, todavía estoy viendo el mismo error (NameError: sin inicializar constante Carpincho::Sesión) cuando pongo el incluir dentro de un módulo. ¿Qué otra cosa estoy haciendo mal?

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea