2017-04-21 2 views
8

Pour une raison quelconque, un de mes tests de concombre semble échouer à la fois sur le pilote de poltergeist et du serveur rails.Erreur de serveur et navigateur Capybara sans trace sur le serveur

Je reçois une trace complète sur le plantage du navigateur mais presque rien du côté serveur.

Quand j'ouvre la capture d'écran Capybara Je vois juste

Internal Server Error méthode non définie pour name nulle: NilClass

Quand je la queue test.log

Complétée Erreur interne du serveur 500 en 0ms (Elasticsearch: 0.0ms)

(Et aucune trace)

J'ai essayé

  • pour définir config.action_dispatch.show_exceptions = true
  • le drapeau b (mais il est seulement montrant la trace détaillée de l'erreur Capybara
  • (mon niveau de configuration est réglé à: déboguer déjà dans mon fichier d'environnement)

Comment puis-je obtenir le l backtrace sur le côté serveur?

EDIT

  • Capybara 2.13.0
  • Rails 5.0.2
  • tout a commenté dans backtrace_silencers
+0

Juste un quelques pensées aléatoires: essayez de supprimer les silencieux Rails (voir 'config/initializers/backtrace_silencers.rb') ou peut-être cela pourrait être un problème de vidange de journal? De quelle version de Rails parlons-nous? – BoraMa

Répondre

0

Je suis quelque chose de this answer! Donc, la solution était de permettre de sauver l'exception dans ActionController :: Base. Dans mon fichier env j'avais les lignes suivantes étaient trompeuses

# There are two ways to allow Rails to rescue exceptions: 
# 
# 1) Tag your scenario (or feature) with @allow-rescue 
# 
# 2) Set the value below to true. Beware that doing this globally is not 
# recommended as it will mask a lot of errors for you! 
# 
ActionController::Base.allow_rescue = false 

Et en ajoutant le @ allow-sauvetage tag je suis arrivé trace d'erreur plus complète montrant dans mon test.log, avec une vue d'erreur frontend