J'ai un certain nombre de contrôleurs dans mes applications Ruby on Rails avec un gestionnaire de secours à la fin de l'action qui attrape fondamentalement toutes les erreurs non gérées et renvoie une sorte d'erreur "conviviale". Cependant, lorsque je fais un test de rake, j'aimerais que ces gestionnaires de secours par défaut soient désactivés afin que je puisse voir l'erreur complète & trace de la pile. Y a-t-il un moyen automatisé de le faire?Comment désactiver les gestionnaires de secours dans les applications Ruby on Rails lorsque j'exécute des tests fonctionnels?
Mise à jour pour clarifier: J'ai une action comme celle-ci:
def foo
# do some stuff...
rescue
render :text => "Exception: #{$!}" # this could be any kind of custom render
end
Maintenant, quand je test fonctionnel cela, si l'exception est soulevée alors je vais obtenir un peu d'informations sur les l'exception, mais ce que je voudrais, c'est qu'il agisse comme s'il n'y avait pas de gestionnaire de secours, donc je reçois l'information de débogage complète.
Mise à jour: SOLUTION
Je l'ai fait:
rescue:
raise unless Rails.env.production?
render :text => "Exception: #{$!}" # this could be any kind of custom render
end
bien je vais essayer ça! –
relance si Rails.env.test? est plus propre IMO – Scott
@Steven cela ne sauve pas vraiment seulement dans la production. Il soulève où il est .. mais si vous avez 20 lignes de code dans le truC#do alors l'augmentation ne donne aucune référence à cela. La trace indique l'erreur survenue sur la ligne sur laquelle la relance est activée. – baash05