【问题标题】:Execute only specific examples in a Scenario Outline仅执行场景大纲中的特定示例
【发布时间】:2016-10-19 12:33:53
【问题描述】:

我们希望在我们的 Java 测试自动化框架中使用 Cucumber 更好地管理测试数据。对于Scenario Outline,我们希望将测试参数按照它们将在其中运行的适用环境分类。 例如,

Scenario Outline: Login into application
Given I am on the homepage in the <environment>
When I enter my <user>
And I enter my <pass>
Then I am taken to the homepage
Examples:
|user    |pass     |environment|
|test    |test1    |local      |
|retest  |retest1  |sit        |
|prodtest|prodtest1|production |

因此,当上述场景在例如 SIT 环境中执行时,只会选择第二个示例,而不是第一个和第三个。

这个级别的执行可以完成吗?

【问题讨论】:

    标签: java cucumber cucumber-jvm


    【解决方案1】:

    您可以通过将示例表分成两个并在它们上使用标签来完成此操作...然后使用标签运行测试以过滤 cucumberoptions。

    @others
    Examples:
    |user    |pass     |environment|
    |test    |test1    |local      |
    |prodtest|prodtest1|production |
    
    @sit
    Examples:
    |user    |pass     |environment|
    |retest  |retest1  |sit        |
    

    【讨论】:

    • 有趣。我不知道@tags 也可以应用于示例。我会试试这个。如果它有效,它应该可以解决我的问题。非常感谢!
    • 另外,场景是否需要标记为“其他”和“坐”,或者标记的示例表会负责选择适用的场景执行?
    • 只需使用示例表上的标签。 Cucumber 应该负责拾取相关标签的其余部分。
    • 好收获!通常使用 cucumber-jvm 并且不知道:)
    • 哪个版本的 cucumber-jvm 支持这个?
    【解决方案2】:

    这不是场景大纲的设计目的。 您可以编写单独的场景,然后在每个场景上使用标签,然后您可以在运行时传入您想要运行的标签。

    【讨论】:

    • 不太适合 D-R-Y 范式 :)
    • 通常在 Cucumber 中,您的测试用例中不会有诸如环境之类的技术细节。场景大纲旨在运行表格中的所有内容,从这个意义上说,它是 DRY。
    猜你喜欢
    • 2014-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多