Выпуск драгоценного камня Cucumber- *, который использует блоки After - PullRequest
2 голосов
/ 12 октября 2011

Я создал простой Gem для создания скриншотов для Capybara Webkit при сбое сценария, а также сохраняет HTML-файл текущей страницы независимо от того, какой драйвер Capybara вы используете.Тем не менее, я столкнулся с проблемой, которую не могу решить, когда всякий раз, когда вызывается код в Gem, page.body пусто.Тем не менее, page.body не является пустым, когда я использую тот же самый код в приложении Rails.

Код gem находится на Github в https://github.com/mattheworiordan/capybara-screenshot

Если вы посмотрите, вы увидитевижу, что у меня есть lib / capybara-screenshot / world.rb файл, который обращается к page.body и сохраняет содержимое.Проблема в том, что когда Gem обращается к page.body, page.body пусто и просто содержит: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> Я включаю world.rb в корневой файл lib gem , поэтому я не могу видетьчто я делаю не так.

Странно, если я помещаю блок after в мой пример файла env.js приложения Rails , обращающийся к page.body, имеет правильный HTML, поэтому кажется, что вызов After{мой код} в Gem выполняется после того, как страница была выпущена.

Код gem в https://github.com/mattheworiordan/capybara-screenshot,, а gem установлен в https://rubygems.org/gems/capybara-screenshot. Пример приложения Railsкоторый вы можете использовать, чтобы быстро воссоздать эту проблему, просто запустив огурец в https://github.com/mattheworiordan/capybara-screenshot-test

Я чувствую, что ответ на этот вопрос прост, но по какой-то причине я не вижу его.Я ценю любую помощь, которую вы можете предложить.

1 Ответ

2 голосов
/ 23 октября 2011

Джо Феррис из Thoughtbot указал мне правильное направление и указал, что вам нужно убедиться, что хук After загружен после капибары, поэтому мне нужно было обязательно запрашивать все файлы, от которых я зависел. В этом случае мне потребовалась капибара / огурец.

Вы можете увидеть рабочий самоцвет в https://github.com/mattheworiordan/capybara-screenshot

...