У меня есть этот код в Rails приложения /features/support/hooks.rb:Невозможно получить имя файла сценария, от scenario.file в Огурец 2.3.2
After do |scenario|
if scenario.failed?
filename = "#{FAILED_DIR_PATH}/failed--#{scenario.file.gsub("features/","").gsub("/","-")}--#{scenario.line}.html"
Capybara.save_page filename
end
end
Если сценарий на линии 12
в файле /features/user_features/user_login.feature
не удался тогда, вместо используемого по умолчанию капибары страница дамп файла в
tmp/capybara/capybara-5654648798738734.html
дамп будет сохранен с лучшим файлом:
tmp/capybara/failed--user_features-user_login.feature--12.html
поэтому, если есть много сбоев, я сразу же знаю, какой дамп правильный.
Это работало в Cucumber 1.3.2.
Сегодня я обновил драгоценные камни и получил Cucumber 2.3.2
и получил эту ошибку:
undefined method `file' for #<Cucumber::RunningTestCase::Scenario:0x007f9598abb230>
Если я его отладки, scenario
имеет только эти методы:
Cucumber::RunningTestCase::Scenario#methods:
accept_hook? exception failed? outline? passed? skip_invoke! source_tag_names source_tags status title with_result
Единственное место, где я могу найти имя файла находится в scenario.exception.backtrace
(глубоко погребенный под файлами Capybara).
Есть ли какая-либо возможность получить путь к файлу сценария и номер строки, где начался сценарий?
Спасибо Дэйв за невероятные исправления и улучшения моего вопроса. – Foton