Невозможно получить имя файла сценария из scene.file в Cucumber 2.3.2
У меня есть этот код в приложении Rails /features/support/hooks.rb:
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
поэтому, если будет много сбоев, я сразу узнаю, какой дамп правильный.
Это работало в огурце 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
(глубоко похоронен под файлами Капибары).
Есть ли теперь возможность получить путь к файлу сценария и номер строки, с которой начался сценарий?
1 ответ
В огурце 2 file
а также line
являются атрибутами scenario
"s location
не из scenario
сам. замещать scenario.file
с scenario.location.file
а также scenario.line
с scenario.location.line
,