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 Comentarios

  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?

Dejar respuesta

Please enter your comment!
Please enter your name here