読者です 読者をやめる 読者になる 読者になる

Capybara + Poltergeist で console.log を捨てる

Capybara

Capybara + Poltergeist で E2E テストを動かしてるときに console.log が標準出力に表示されてしまって,RSpec の結果が非常に見にくかった.

teampoltergeist/poltergeist · GitHub にあるドキュメントを呼んだら phantomjs_logger オプションで制御できることがわかったので試してみた.

:phantomjs_logger (IO object) - Where the STDOUT from PhantomJS is written to. This is where your console.log statements will show up. Default: STDOUT

console.log を捨てる

spec_helper.rb で以下のように定義する.今回は /dev/null に捨ててるけど,別のログファイルに残すこともできる.とは言え,そもそも console.log が出力されてること自体が微妙なので,消したいなーという気もしている.

Capybara.register_driver :poltergeist do |app|
  options = {
    phantomjs_logger: Logger.new('/dev/null')
  }
  Capybara::Poltergeist::Driver.new(app, options)
end