【问题标题】:How can i get cucumber scenario variables in title?如何在标题中获取黄瓜场景变量?
【发布时间】:2023-03-25 15:44:01
【问题描述】:

我希望能够通过使用标题本身中的示例让我的场景大纲标题包含更多信息:

 Scenario Outline: A <some> step is <result>
    When a <some> step
    Then I get <result>
    Examples:
    | some    | result  |
    | passing | passed  |
    | failing | skipped |
    Then my scenario titles end up very useful:
    Scenario: A passing step is passed
    Scenario: A failing step is skipped

【问题讨论】:

  • 我想我这样做了:场景大纲:“”步骤是“”,它没有给出预期的结果。我明天再试一次

标签: variables cucumber scenarios


【解决方案1】:

Then 关键字必须在Examples 之上。

Feature: Scenario outline with variables

    Scenario Outline: A "<some>" step is "<result>"
      When a "<some>" step
      Then I get "<result>"
      Then my scenario titles end up very useful
      Examples:
        | some    | result  |
        | passing | passed  |
        | failing | skipped |

用胶水ScratchSteps.java

import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;

public class ScratchSteps {

    private String step;
    private String result;

    @Then("^my scenario titles end up very useful$")
    public void myScenarioTitlesEndUpVeryUseful() throws Throwable {
        System.out.printf("step: %s  result: %s%n", step, result);
    }

    @When("^a \"([^\"]*)\" step$")
    public void aStep(String step) throws Throwable {
        this.step = step;
    }

    @Then("^I get \"([^\"]*)\"$")
    public void iGet(String result) throws Throwable {
        this.result = result;
    }
}

输出是

Feature: Scenario outline with variables

  Scenario Outline: A "<some>" step is "<result>" # features/scratch.feature:3
    When a "<some>" step
    Then I get "<result>"
    Then my scenario titles end up very useful

    Examples: 

  Scenario Outline: A "passing" step is "passed" # features/scratch.feature:9
    When a "passing" step                        # ScratchSteps.aStep(String)
    Then I get "passed"                          # ScratchSteps.iGet(String)
step: passing  result: passed
    Then my scenario titles end up very useful   # ScratchSteps.myScenarioTitlesEndUpVeryUseful()

  Scenario Outline: A "failing" step is "skipped" # features/scratch.feature:10
    When a "failing" step                         # ScratchSteps.aStep(String)
    Then I get "skipped"                          # ScratchSteps.iGet(String)
step: failing  result: skipped
    Then my scenario titles end up very useful    # ScratchSteps.myScenarioTitlesEndUpVeryUseful()

2 Scenarios (2 passed)
6 Steps (6 passed)

【讨论】:

  • 为什么没有更简单的方法呢? cucumber 和 Selenium 不能为此合作吗? (为什么不支持?)
  • @tijnn 我不明白这个问题。在你原来的问题中没有提到硒。您想用 Cucumber 和 Selenium 解决什么具体要求?如果现在这会扩大您最初的问题,请考虑针对您与黄瓜和硒相关的问题提出一个新问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多