Tengo un número de controladores en mis aplicaciones de Ruby on Rails con un controlador de rescate al final de la acción que básicamente detecta cualquier error no controlado y devuelve algún tipo de error "fácil de usar". Sin embargo, cuando estoy haciendo la prueba de rake me gustaría tener esos manejadores de rescate predeterminados deshabilitados para que pueda ver el error completo & stack trace. ¿Hay alguna forma automatizada para hacer esto?¿Cómo desactivo los manejadores de rescate en las aplicaciones de Ruby on Rails cuando estoy ejecutando pruebas funcionales?
actualización aclarar: Tengo una acción como esta:
def foo
# do some stuff...
rescue
render :text => "Exception: #{$!}" # this could be any kind of custom render
end
Ahora, cuando esta prueba de funcionamiento, si la excepción se eleva a continuación, voy a obtener sólo un poco de información sobre la excepción, pero lo que me gustaría es que actúe como si no hubiera un controlador de rescate allí, así que obtengo la información completa de depuración.
Actualización: SOLUCIÓN
me hizo esto:
rescue:
raise unless Rails.env.production?
render :text => "Exception: #{$!}" # this could be any kind of custom render
end
¡Lo intentaré! –
raise if Rails.env.test? es más limpio IMO – Scott
@Steven esto realmente no rescata solo en la producción. Se plantea donde está ... pero si tienes 20 líneas de código en el elemento #do, el aumento no da ninguna referencia a esto. La traza indica que se produjo el error en la línea en la que está activada la subida. – baash05