在钩子之前和之后抓取场景信息



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

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(。此外,我也不再能够访问有关当前步骤和步骤计数的信息。

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

从all_source变量中,您将可以访问来自 ::Ast 的多个对象

方案概要:

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

  • 黄瓜::核心::Ast::场景大纲

  • 黄瓜::核心::Ast::示例

  • 黄瓜::核心::Ast::示例表::行:

  • 黄瓜::核心::Ast::扩展大纲步骤

场景:

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

  • 黄瓜::核心::Ast::场景

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

从中,您应该能够获取有关文件路径,描述,注释,标签,钩子,行号等的数据。

最新更新