2017-03-21 42 views
1

現在我試圖抓住當前場景中的信息(描述,文件路徑,名稱等)。我試圖讓在之前鉤場景信息這樣抓取前後鉤子的場景信息?

Before do |scenario| 
    puts scenario.name 
    puts scenario.description 
    #etc. 
end 

但是之類的東西scenario.description是不可用。這是因爲當在前後鉤子中運行時,情況被稱爲Cucumber::RunningTestCase::Scenario,而不是核心AST模塊的一部分,就像功能一樣。我希望能夠從Cucumber::Core::Ast::ScenarioCucumber::Core::Ast::OutlineTable::ExampleRow訪問場景,其中可以使用當前場景描述等值。是否可以在鉤子前後訪問Cucumber::Core::Ast::Scenario而不是Cucumber::RunningTestCase::Scenario,或以其他方式獲取場景名稱,描述,文件路徑等信息?這是使用最新版本的黃瓜和黃瓜核心寶石(2.4和1.5)。另外,我也不再能夠訪問關於當前步驟和步數的信息。

回答

1
Before do |scenario| 
    all_sources = scenario.outline? ? scenario.scenario_outline.all_source : scenario.all_source 
end 

從ALL_SOURCE變量,你將有機會獲得由::幾個對象助攻

方案概要:

  • 黃瓜::核心::阿斯特::功能

  • Cucumber :: Core :: Ast :: ScenarioOutline

  • Cucumb呃::核心::阿斯特::例子

  • 黃瓜::核心::阿斯特:: ExamplesTable ::行:

  • 黃瓜::核心::阿斯特:: ExpandedOutlineStep

場景:

  • 黃瓜::核心::阿斯特::功能

  • 黃瓜::核心::阿斯特::場景

  • 黃瓜::核心::阿斯特::步驟

從這些你應該能夠獲得有關文件路徑,描述,評論,標籤,掛鉤數據,行號等。