Можем ли мы добиться «фильтрации по примерам» на основе karate.env - PullRequest
1 голос
/ 02 апреля 2019

Можем ли мы добиться «фильтрации по примерам», которая у нас есть на Jbehave

Пример ниже:

* def request = { item: '#(item)' }
Examples:
|karate.env:     |item                |
|@dev            |778983-110833-110834|
|@qa             |848079-419456-419457|

Что нам нужнодостижения:

  1. DSL для каратэ для выполнения тестов в таблице примеров на основе текущего значения karate.env
  2. Карате должен создать запрос = { item: '778983-110833-110834' }, если я запускаю тесты вdev environment & { item: '848079-419456-419457' } если я запускаю тесты в qa.

Я не смог добиться этого с помощью свойства karate.env, но достиг этого с помощью тегов, см. пример ниже:

Feature:

  Background:
    * url 'https://reqres.in/api'
    * configure headers = { 'Content-Type': 'application/json'}

  Scenario Outline:
    * def reqJson = { "name": "name", "job": "<item>"}
    And path 'users'
    And request reqJson
    When method post
    Then status 201
    And match response.job == '<item>'

    @dev
    Examples:
      | item |
      |   111|

   @qa
    Examples:
      | item |
      |   222|

Запуск в командной строке для среды = qa: mvn test -Dcucumber.options="--tags @qa" Запуск в командной строке для среды = dev: mvn test -Dcucumber.options="--tags @dev"

Пожалуйста, дайте мне знать, если есть какой-либо другой способ достижения этоготак как я хотел использовать свойство karate.env.

1 Ответ

1 голос
/ 02 апреля 2019

Я думаю, что вы ищете это: https://github.com/intuit/karate#tags-and-examples

Малоизвестная возможность синтаксиса Cucumber / Gherkin заключается в том, чтобы иметь возможность помечать даже определенные строки в куче примеров! Вы должны повторить раздел Примеры для каждого тега. В приведенном ниже примере это сочетается с расширенными функциями, описанными выше.

Scenario Outline: examples partitioned by tag
* def vals = karate.tagValues
* match vals.region[0] == '<expected>'

  @region=US
  Examples:
    | expected |
    | US       |

  @region=GB
  Examples:
    | expected |
    | GB       |
...