Порядок выполнения хука сценария Ruby огурца

У меня есть хук After, который выполняется до хука самого сценария. Я хочу изменить порядок запуска этих хуков. В настоящее время хук «After do» запускается до «After('@66075')», и сначала должна выполняться очистка в 66075.

Мои крючки

After('@66075') do
  begin
    #cleanup
  rescue => detail
    puts detail.message
    puts detail.backtrace.join("\n")
  end
end

After do |scenario|
  begin
    if scenario.failed?
      #do stuff
    end
  rescue
    puts "process for failing scenarios failed"
  end
  begin
    @browser.link(:text, 'Logout').click
    sleep(0.5)
    @browser.alert.ok if @browser.alert.exists?
  rescue => detail
    puts detail.message
    puts detail.backtrace.join("\n")
    puts "logout and close windows failed"
  end
end

и мой сценарий:

 @66075 
  Scenario: my Scenario
    Given A
    When B
    Then C

person Matt Westlake    schedule 04.08.2014    source источник


Ответы (2)


После того, как хуки запускаются в порядке, обратном тому, в котором они появляются в вашей поддержке/*. rb. Является ли хук специфичным для тега или нет, это не влияет на порядок его запуска. Чтобы тегированный хук запускался перед нетегированным хуком, поместите тегированный хук после нетегированного хука.

person Dave Schweisguth    schedule 06.08.2014
comment
Приведенный выше документ перемещен по следующей ссылке docs.cucumber.io/cucumber/api/#hooks< /а> - person Anand Chavan; 14.01.2019

Прежде чем хуки запустятся в том же порядке, в котором они объявлены. https://docs.cucumber.io/cucumber/api/#hooks

person Anand Chavan    schedule 14.01.2019