Таблица многократного использования / общие примеры в огурце - PullRequest
0 голосов
/ 04 сентября 2018

Возможно ли для нескольких сценариев использовать одну и ту же таблицу примеров?

Так что вместо того, чтобы иметь что-то вроде следующего:

Scenario Outline: First Scenario
    Given I am viewing "<url>"
    Then I assert that the current URL "<url>"
    Examples:
      | url                |
      | https://google.com |
      | https://twitter.com|

  Scenario Outline: Second Scenario
    Given I am viewing "<url>" with route "</contactus>"
    Then I assert that "<url>" contains "contactus"
    Examples:
      | url                |
      | https://google.com |
      | https://twitter.com|

Я могу сделать что-то вроде

Scenario Outline: Reusable Example
    Examples:
      | url                |
      | https://google.com |
      | https://twitter.com|

  Scenario: First Scenario
    Given I am viewing "<url>"
    Then I assert that the current URL "<url>"

  Scenario: Second Scenario
    Given I am viewing "<url>" with route "</contactus>"
    Then I assert that "<url>" contains "contactus"

Я обнаружил похожий вопрос в StackOverflow , но объединение всех моих сценариев в одном сценарии не вариант для меня. Поскольку этот вопрос был опубликован в 2014 году, возможно, в рамках были некоторые улучшения, о которых я не знаю: D

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Вы можете использовать qaf-gherkin , где вы можете перемещать примеры во внешний файл и использовать его с одним или несколькими сценариями. С qaf ваш файл функций может выглядеть так:

Scenario Outline: First Scenario
   Given I am viewing "<url>"
   Then I assert that the current URL "<url>"
   Examples:{'datafile':'resources/testdata.txt'}

Scenario Outline: Second Scenario
Given I am viewing "<url>" with route "</contactus>"
Then I assert that "<url>" contains "contactus"
Examples:{'datafile':'resources/testdata.txt'}

И ваш файл данных будет выглядеть так:

url
https://google.com
https://twitter.com

Вот ссылка .

0 голосов
/ 05 сентября 2018

Вы можете использовать Фон , чтобы указать шаги, которые одинаковы для всех сценариев. (Посмотрите на ссылку для ограничений)

Файл объекта может выглядеть как

Feature: use of reusable Given

  Background: Reusable Example
    Given I am viewing url
      | https://google.com |
    And a search phrase is entered in the search field

  Scenario: First Scenario
    And step for first scenario

  Scenario: Second Scenario
    And step for second scenario

реализация кода клея для Given

@Given("^I am viewing url$")
public void iAmViewing(List<String> url) throws Throwable {
    System.out.println("url = " + url);
}

edit После обновления вопроса Scenario Outline может сработать для обоих примеров.

Feature: use of example

  Scenario Outline: First Scenario
    Given I am viewing "<host>" with path "<path>"
    Then I assert that the current URL is "<host><path>"

    Examples:
      | host                | path       |
      | https://google.com  | /          |
      | https://twitter.com | /contactus |
...