Cucumber 特性:如何针对不同环境分别使用场景中提到的示例

问题描述 投票:0回答:1

目的是分别使用为每个特定环境设置的示例。

以下是我的场景特征:在开发环境(仅用于测试)上错误登录 1 次后用户被阻止,在 QA 上错误登录 3 次后用户被阻止

Scenario Outline: Verify if user is blocked after 3 wrong attempts to login
  When he attempts to login <retries> times with incorrect password
  Then Error Popup should not be displayed
  And Error message is displayed: "Your account is blocked"

  @dev
  Examples:
    | retries |
    | 1       |
  @qa
  Examples:
    | retries |
    | 3       |

我在指定环境下执行测试如下:

gradle clean e2e-test -Denvironment=dev

我看到测试是在

Dev
上执行的,但是在
retries = 1
(通过)之后,它再次重复
retries = 3
,并且仍然在 Dev

如果我在 QA 上执行测试,那么它首先以

retries = 1
开始,然后以
retries = 3
继续,这不是我所期望的。

我认为它会分别识别给定环境的每个示例。但它似乎执行了一个环境的所有示例。

我希望如果我说

env = dev
,那么它应该执行示例
retries = 1
,然后停止。质量检查也是如此。我怎样才能实现这个目标?

java testing cucumber bdd cucumber-java
1个回答
0
投票

我缺少另一个属性:

Dcucumber.filter.tags
,以指定我要使用哪个示例。

gradle clean e2e-test -Denvironment=dev -Dcucumber.filter.tags="@dev"
© www.soinside.com 2019 - 2024. All rights reserved.