После обновления до Capybara 2.1 и Poltergeist 1.5.0 мы получаем ActionController::RoutingError для /my/image.png в тестах JS.

Мы обновились с Capybara 1.1.4 и Poltergeist 1.0.2. phantomjs оставался на версии 1.8.1 на протяжении всего времени.

JS-тесты, отображающие страницы, например. <img src="/my/image.png"> потерпит неудачу с указанной выше ошибкой, где раньше они не терпели неудачу.

Этого файла действительно нет. Это фальшивый путь, сгенерированный для тестов, и превратить его в реальный файл, к сожалению, нетривиально (но в конечном итоге это должно быть сделано).


person Henrik N    schedule 14.03.2014    source источник


Ответы (1)


Наше решение/обходной путь состоял в том, чтобы настроить Полтергейст так, чтобы он не отображал изображения:

Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, phantomjs_options: ["--load-images=no"])
end

Таким образом, он не делает эти запросы и не вызывает эти ошибки.

Предположительно старая версия Capybara или Poltergeist каким-то образом проглотила этот тип ошибки — может быть, не загружая изображения, может быть, каким-то другим образом.

Это не элегантное решение, но оно кажется не хуже, чем любое неявное глотание, которое происходило раньше.

person Henrik N    schedule 14.03.2014