我有AfterStep
鉤,它可以給我一個名稱。但它只給出了傳遞步驟的名稱。如何得到下一個黃瓜後,如果它通過失敗
AfterStep do |result, step|
puts step.name
end
如果下一個失敗後如何獲得下一個黃瓜步驟? 或如何獲取失敗步驟的名稱?
也許某種方式來計算步驟的位置,並採取另一個?
任何想法? 我相信這是可能的,因爲我們可以在錯誤日誌中看到失敗的步驟名稱。
我有AfterStep
鉤,它可以給我一個名稱。但它只給出了傳遞步驟的名稱。如何得到下一個黃瓜後,如果它通過失敗
AfterStep do |result, step|
puts step.name
end
如果下一個失敗後如何獲得下一個黃瓜步驟? 或如何獲取失敗步驟的名稱?
也許某種方式來計算步驟的位置,並採取另一個?
任何想法? 我相信這是可能的,因爲我們可以在錯誤日誌中看到失敗的步驟名稱。
找到。我們可以使用scenario.exception.backtrace
它將返回一個帶有步驟名稱的數組。然後從數組中獲取需要元素。 但是,也許有其他的東西可以讓失敗的步驟?
原因AfterStep
根本沒有被調用很簡單:它被視爲一個簡單的步驟,並且是步驟列表just appended。因此,一旦任何步驟失敗,scenario
停止,並且AfterStep
永遠不會被調用。我認爲它是cucumber-ruby
中的一個錯誤。
作爲一種變通方法,一個可能使用After
鉤:
After do |scenario|
if scenario.failed?
puts "Failed: " << scenario.marshal_dump[2].first.source.inspect
end
end