Tengo una aplicación que usa rails 3.2 y Devise. Tengo un paquete de prueba de solicitud que usa rspec y Capybara.Rails 3 con Devise y rspec: Ayudantes de prueba de Warden poco confiables
He intentado pasar al uso de los ayudantes de prueba de Warden en mi inicio de sesión en lugar de hacer que Capybara complete el formulario de inicio de sesión y enviarlo. Debido al tamaño y la complejidad de mi suite de pruebas, esto da como resultado más de un minuto y medio de ahorro en los tiempos de ejecución de la prueba.
En mi configuración es:
RSpec.configure do |config|
config.include Warden::Test::Helpers, :type => :request
config.after :each do
Warden.test_reset!
end
end
y en un contexto:
let!(:current_user) { FactoryGirl.create(:user) }
background do
login_as(current_user, :scope => :user)
end
Sin embargo, cuando se ejecuta el conjunto de pruebas mediante las configuraciones casi en cada prueba tiene una especificación de petición no al azar diferente debido a la página que presenta como si el usuario no hubiera iniciado sesión. (Específicamente, enlaces controlados por un condicional user_signed_in?
)
Mi questio n: ¿Alguien más ha encontrado tal falta de fiabilidad y cómo puede mitigarse?
Estoy de acuerdo en que es la más fácil y esa es la solución que estoy usando por ahora. Sin embargo, realmente quiero que minuto y medio corten mis exámenes. –
¿Has intentado simplemente publicar el correo electrónico/contraseña en 'user_session_path'? – DVG
Sí, funciona bien con selenio, pero debido a algunos problemas con selenio y firefox, estamos usando capybara-webkit, que no admite la publicación de datos en una URL directamente. –