Poltergeist: опция phantomjs_logger игнорируется - PullRequest
0 голосов
/ 12 сентября 2018

В этой настройке:

require 'capybara/poltergeist'
Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, {
    phantomjs_options: ['--ignore-ssl-errors=yes', '--ssl-protocol=any', '--load-images=no'], debug: false, timeout: 500, screen_size: [1600, 1200], js_errors: false,.
    logger: File.open( Rails.root.join("./log/test.poltergeist.log").to_s, "a" ),
    phantomjs_logger: File.open( Rails.root.join("./log/test.phantomjs_console.log").to_s, "a" )
  })
end

Phantomjs игнорирует опцию phantomjs_logger и выводит все данные, выводимые приложением, на консоль в STDOUT, поэтому при работе с моими спецификациями мне загружается мусор.

Я безуспешно пытался установить phantomjs_logger в Logger.new (...), в File.open ("/ dev / null", ...), в ноль, в ложь и практически во все, что вы можете придумать просто ничего не делает.

В идеале, я бы хотел, чтобы ошибки не прошли тест и другие .info .log, какие бы сообщения ни отправлялись в файл журнала. Но я также могу посылать все это в файл журнала.

Позднее редактирование: похоже, это происходит и с Chrome без головы. Он просто сбрасывает console.log в стандартный вывод :(

Что я делаю не так?

1 Ответ

0 голосов
/ 12 сентября 2018

После нескольких часов, потраченных на это, мне удалось заставить его работать, открыв журнал в $ stdout. Не уверен, почему это не может работать в соответствии с документами, ну да ладно.

$stdout = File.open( Rails.root.join("./log/test.phantomjs_console.log").to_s )

require 'capybara/poltergeist'
Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, {
    phantomjs: "/usr/local/bin/phantomjs", # '>> ./log/test.phantomjs_console.log 2>&1'
    phantomjs_options: [ '--ignore-ssl-errors=yes', '--ssl-protocol=any', '--load-images=no', '--debug=false' ], debug: false, timeout: 500, window_size: [1600, 1200], js_errors: false,.
    logger: File.open( Rails.root.join("./log/test.poltergeist.log").to_s, "a" ),
    phantomjs_logger: $stdout
  })
end

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

...