Получить рельсовые исключения, чтобы показать с использованием капибары и селена - PullRequest
6 голосов
/ 07 января 2011

При использовании капибары и селена для запуска интеграционных тестов в рельсах, если возникает исключение, вместо обычного экрана исключений с трассировкой стека отображается пустая белая страница. Есть ли способ заставить капибару показывать страницы трассировки стека?

Ответы [ 3 ]

5 голосов
/ 27 марта 2011

Мне не удалось отобразить трассировки стека с помощью Webrick или Thin, но мой возможный обходной путь заключался в использовании Mongrel, который правильно печатает трассировки стека в stderr.

С капибарой 0.4.1.2 или новее вы можете настроить капибару на использование дворняги следующим образом:

Capybara.server do |app, port|
  require 'rack/handler/mongrel'
  Rack::Handler::Mongrel.run(app, :Port => port)
end
5 голосов
/ 01 июня 2012

Решение Мэтта мне не помогло, но именно эта суть https://gist.github.com/1443408 сделал.

https://github.com/thoughtbot/capybara-webkit/issues/226 объясняет более подробно, почему это происходит и дает объяснение того, что делает данный гист.

0 голосов
/ 08 марта 2011

это наиболее вероятно, потому что трассировка стека показывается только в режиме выполнения (или «среде»), а интеграционные тесты выполняются в производство окружение.

Конечно, изменив настройки рабочего режима, вы сможете заставить его показывать исключение. Но это не будет правильным способом. Лучший способ:

  • записать исключение и трассировку стека в файл или в лог-сервер (hoptoad?) где пользователь не может видеть это, кроме вас может
  • поймать исключение и сделать страница ошибки

Надеюсь, это поможет. С наилучшими пожеланиями.

...