当前位置: 首页 > 知识库问答 >
问题:

在挂钩前后获取场景信息?

东方海
2023-03-14

现在我正试图从当前场景中获取信息(描述、文件路径、名称等)。我试着像这样在before hook中获取场景信息

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

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

共有1个答案

卫招
2023-03-14
Before do |scenario|
  all_sources = scenario.outline? ? scenario.scenario_outline.all_source : scenario.all_source
end

从all_source变量中,您可以访问::A的几个对象

场景概述:

>

  • Cucumber::Core::Ast::Feature

    cucumber::C或e::A::情景大纲

    Cucumber::Core::Ast::示例

    cucumber::C或e::Ast::Examp Table::行:

    Cucumber::Core::Ast::ExpandedOutlineStep

    脚本:

    >

  • Cucumber::Core::Ast::Feature

    Cucumber::Core::Ast::Scenario

    Cucumber::Core::Ast::Step

    从这些数据中,您应该能够获得有关文件路径、描述、注释、标记、挂钩、行号等的数据

  •  类似资料:
    • 接口说明 获取场景分享信息 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 GET /wish3dearth/api/scene/share/v1.0.0/getShareInfo 是否需要登录 否 请求字段说明 参数 类型 请求类型 是否必须 说明 shareId string query 是 场景分享ID 响应字段说明 参数 类型 说明

    • 接口说明 获取场景分享信息 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 GET /wish3dearth/api/scene/share/v1.

    • 我尝试在cucumber中执行特性后执行一个脚本来清理数据库。我使用前后挂钩的方式如下: 对于before,我可以避免使用静态变量在每个场景之前调用脚本。但不知道如何为后钩子做: 有没有办法捕获最后一个方案是否已经执行,并且仅在满足该条件时才触发 clearData()?有没有更优雅的方法?

    • 接口说明 获取场景的分屏信息 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 GET /wish3dearth/api/scene/v1.0.0/getSplitScreenInfo 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 token string header 是 当前登录用户的TOKEN mainSceneI

    • 接口说明 获取场景的分屏信息 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 GET /wish3dearth/api/scene/v1.0.0/g

    • 我不确定如何在cucumber-JVM中实现它。有线索吗?