Как проверить ошибки Javascript с помощью водосвинки и полтергейста?

Я пытаюсь выяснить, как именно реализовать эту функциональность полтергейста в моих существующих тестах Capybara, и мне не повезло после прочтения документации здесь: https://github.com/teampoltergeist/полтергейст

Я включил приведенный ниже код, но когда я запускаю свои тесты, я не вижу никаких предупреждений об ошибках JS, когда я знаю, что в консоли есть ошибки JS. Я что-то упускаю? Должен ли я передать определенную команду в терминал, чтобы убедиться, что она проверяет наличие ошибок JS? Спасибо!

require 'capybara/poltergeist'
Capybara.javascript_driver = :poltergeist

options = {js_errors: true}
Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, options)
end

person Chris Vannithone    schedule 17.04.2015    source источник
comment
Почему вы установили для js_errors значение false?   -  person Frederick Cheung    schedule 17.04.2015
comment
Ах, извините, я скопировал / вставил это из источника, в котором я его нашел (еще один поток SO). Я изменил его на true в своем коде, и я все еще не вижу предупреждений об ошибках JS при запуске   -  person Chris Vannithone    schedule 18.04.2015


Ответы (1)


Я столкнулся с вашей публикацией после того, как погуглил аналогичный вопрос. В моем случае я начал с webkit в качестве драйвера в капибаре. Я прочитал сообщение в блоге, в котором предлагался следующий код, в котором использовался сопоставитель «have_errors» для захвата любой ошибки js.

it 'should not have JavaScript errors', js: true do     
 visit(root_path)       
 expect(page).to_not have_errors        
end

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

https://github.com/alaghu/learn_jquery/compare/dev...1d6be6dfd500

По сути, каждый тест автоматически проверяет, есть ли на странице ошибки. Мне нужно было только ввести js: true в свои тесты. Я проверил это, преднамеренно ошибившись в файлах js для проверки этих тестов.

Надеюсь, это было полезно.

person Anand    schedule 02.12.2015
comment
В Полтергейсте это не работает. expected #<Capybara::Session:0x007f8d4390e750> to respond to 'has_errors?' к тому же ссылка битая. - person max; 07.10.2016