2010-03-10 6 views
42

Empecé a migrar de pepino + webrat a pepino + capibara. Ahora el comportamiento de "Debería ver" parece ser algo diferente. La mayoría de estos fallan ahora, aunque no cambié nada en la página. Reemplacé el fragmento que debería encontrarse con algunas cosas que están en cada página y para algunos textos funciona y para otros textos no. No puedo encontrar ningún patrón en lo que se encuentra en el contenido de la página y lo que no. Webrat solía imprimir el contenido de la página que encontró, en caso de que no contuviera la frase requerida. ¿Hay alguna forma de que el capibara muestre qué texto obtuvo de la página en la que intentó encontrar el texto?¿Cómo puedo ver qué carpincho encontró en un paso de pepino que falla?

+63

Como alguien completamente desconocido con las tecnologías nombradas, este es mi título favorito de preguntas y respuestas sobre desbordamiento de pila. – Oddthinking

+1

Sí, parece algo relacionado con un zoológico. – ajmurmann

+1

¡lol, el pobre carpincho! –

Respuesta

29

Trate de añadir este paso:

Then show me the page 
+0

¡Muchas gracias! ¡Esto ayudó mucho! – ajmurmann

+0

Sé que esto es muy antiguo, pero después de agregar esa directiva tuve que instalar la gema 'launchy' y lanzó la página con los contenidos, realmente genial. – rii

5

También es posible usar "Entonces me muestran la respuesta", que da salida al HTML para la consola si no desea utilizar un navegador.

+1

comando no dentro de pepino para rails3 –

+6

'imprimir página.html' (en su definición de paso) funciona en Rails3 –

39

Then show me the page llama al método subyacente save_and_open_page de webrat/capybara. Me pareció útil cuando se trabaja con carne.

21

Si desea que el navegador abra la página cuando la página falla, use la gema 'launchy'. agregarlo a su archivo de gema, y ​​luego en/características/soporte de crear un archivo llamado debugging.rb con contenidos:

After do |scenario| 
    save_and_open_page if scenario.failed? 
end 
+1

Esto es espectacularmente útil, gracias. Parece que debería instalarse de manera predeterminada con Cucumber. – dankohn

9

Si está utilizando Javascript o Ajax en sus páginas y quieren ver lo que está pasando , Descubrí que el controlador de Poltergeist es muy bueno al permitirte entrar al DOM y descubrir qué está pasando mal.

Si la configuración de su controlador de Carpincho con la opción remota de depuración:

Capybara.register_driver :poltergeist do |app| 
    Capybara::Poltergeist::Driver.new(app, inspector: true) 
end 

entonces usted puede poner la siguiente línea en sus pasos:

page.driver.debug 

que lanza un nuevo navegador de cromo con el estado de DOM actual establecido, lo que le permite llegar a la consola. (En mi versión de Linux, tuve que enlazar simbólicamente cromo al navegador de cromo, pero de lo contrario funcionó bien).

de fuente: http://jonathanleighton.com/articles/2012/poltergeist-0-6-0/

7

Then show me the response no funcionó para mí con pepino 1.1. He encontrado útil escribir un paso con el comando de capibara:

print page.html

Esto da salida a la situación actual del DOM

0

Siempre se puede hacer que tome una captura de pantalla cuando algo falló. Debo depurar MUCHAS funciones con errores de esa manera.

Cuestiones relacionadas