【问题标题】:Cucumber Scenario: getSourceTagNames() inconsistently returns list in random orderCucumber 场景:getSourceTagNames() 不一致地以随机顺序返回列表
【发布时间】:2019-07-21 14:40:04
【问题描述】:

我正在尝试为每个执行的黄瓜场景实施自动证据捕获系统。作为其中的一部分,我需要使用第一个场景 @tag 作为证据文件夹名称的一部分。

但是,我发现黄瓜场景中的 getSourceTagNames() 方法以随机顺序返回列表,与写入标签的顺序相比。所以简单地调用scenario.getSourceTagNames().get(0) 不会始终如一地给我我需要的标签。

例如 场景:示例 @tagINeed @secondTag @thirdTag

getSourceTagNames() 可能返回 {@thirdTag, @tagINeed, @secondTag}

有没有办法确保返回的列表与写入的顺序相同?

【问题讨论】:

  • 也许标签以公共前缀@Evidence-LTM15开始?
  • 不幸的是,在自动化框架的上下文中,这不是一个可行的解决方案
  • @DanielPhillips 不如在场景描述中提及它?使用一些特殊字符进行解析。使用scenario.getName() 来访问它。虽然这会在任何可能输出描述的报告中打印出来。

标签: java selenium cucumber qaf


【解决方案1】:

您正在寻找的可以使用gherkin with qaf 来实现,您将能够按照它们定义的顺序访问标签,例如:

@tagINeed @secondTag @thirdTag
Scenario: Example 

Java 代码:

scenario.getGroups()[0];//will return "@tagINeed"

如果您将使用BDD2 syntax 而不是小黄瓜,您可以使用带有场景的meta-data。例如:

@TestID:ABC-123
@Evidence:tagINeed @firstTag @secondTag
Scenario: Example 

Java 代码:

scenario.getMetaData().get("Evidence");//will return "tagINeed"
scenario.getGroups()[0];//will return "firstTag"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 2019-02-01
    • 2010-11-10
    • 2017-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多