2016-02-25 6 views
2

У меня есть этот код в 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).

Есть ли какая-либо возможность получить путь к файлу сценария и номер строки, где начался сценарий?

+0

Спасибо Дэйв за невероятные исправления и улучшения моего вопроса. – Foton

ответ

1

В огурце 2, file и line являются атрибуты locationscenario «s, а не сам scenario. Заменить scenario.file на scenario.location.file и scenario.line с scenario.location.line.

+0

Спасибо, много работает. – Foton

 Смежные вопросы

  • Нет связанных вопросов^_^