在After和After钩子中抓取场景信息?

时间:2017-03-21 20:41:55

标签: ruby cucumber hook gherkin scenarios

现在我正在尝试从当前场景中获取信息(描述,文件路径,名称等)。我试着像之前那样在前钩子中获取场景信息

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

然而,诸如scenario.description之类的东西无法使用。这是因为在Before和After钩子中运行时,场景被称为Cucumber::RunningTestCase::Scenario而不是核心AST模块的一部分,就像功能一样。我希望能够从Cucumber::Core::Ast::ScenarioCucumber::Core::Ast::OutlineTable::ExampleRow访问方案,其中可以使用当前方案描述等值。是否可以在钩子之前和之后访问Cucumber::Core::Ast::Scenario而不是Cucumber::RunningTestCase::Scenario,或者获取方案名称,描述,文件路径等信息的其他方式?这是使用最新版本的黄瓜和黄瓜核心宝石(2.4和1.5)。此外,我也无法再访问有关当前步骤和步骤计数的信息。

1 个答案:

答案 0 :(得分:1)

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

从all_source变量,您可以访问:: Ast

中的多个对象

场景大纲:

  • 黄瓜::核心::阿斯特::特征

  • Cucumber :: Core :: Ast :: ScenarioOutline

  • Cucumber :: Core :: Ast :: Examples

  • Cucumber :: Core :: Ast :: ExamplesTable :: Row:

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

情景:

  • 黄瓜::核心::阿斯特::特征

  • 黄瓜::核心::阿斯特::方案

  • 黄瓜::核心::阿斯特::步骤

通过这些,您应该能够获得有关文件路径,描述,注释,标签,挂钩,行号等的数据。