Ho un numero di controller nelle mie app Ruby on Rails con un gestore di ripristino alla fine dell'azione che rileva in pratica qualsiasi errore non gestito e restituisce una sorta di errore "user friendly". Tuttavia, quando eseguo il rake test mi piacerebbe avere disattivati i gestori di salvataggio predefiniti in modo da poter vedere l'errore completo & traccia dello stack. C'è un modo automatico per fare questo?Come disattivare i soccorritori nelle app Ruby on Rails quando eseguo test funzionali?
Aggiornamento per chiarire: ho un'azione come questa:
def foo
# do some stuff...
rescue
render :text => "Exception: #{$!}" # this could be any kind of custom render
end
Ora, quando ho test funzionale questo, se l'eccezione è sollevata poi ho intenzione di ottenere solo un po 'di informazioni su l'eccezione, ma quello che mi piacerebbe è che agisca come se non ci fosse alcun gestore di salvataggio, quindi ricevo le informazioni complete di debug.
Aggiornamento: SOLUZIONE
ho fatto questo:
rescue:
raise unless Rails.env.production?
render :text => "Exception: #{$!}" # this could be any kind of custom render
end
bello ci proverò! –
rilancia se Rails.env.test? è più pulito IMO – Scott
@Steven questo in realtà non salva solo in produzione. Solleva dov'è .. ma se hai 20 linee di codice nella roba #do allora il rilancio non dà alcun riferimento a questo. La traccia indica l'errore si è verificato sulla riga che il rialzo è attivo. – baash05