2017-07-06 18 views
0

我有AfterStep鉤,它可以給我一個名稱。但它只給出了傳遞步驟的名稱。如何得到下一個黃瓜後,如果它通過失敗

AfterStep do |result, step| 
    puts step.name 
end 

如果下一個失敗後如何獲得下一個黃瓜步驟? 或如何獲取失敗步驟的名稱?

也許某種方式來計算步驟的位置,並採取另一個?

任何想法? 我相信這是可能的,因爲我們可以在錯誤日誌中看到失敗的步驟名稱。 enter image description here

回答

0

找到。我們可以使用scenario.exception.backtrace 它將返回一個帶有步驟名稱的數組。然後從數組中獲取需要元素。 但是,也許有其他的東西可以讓失敗的步驟?

0

原因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