我们可以实现Jbehave上的“示例过滤”
以下示例:
* def request = { item: '#(item)' }
Examples:
|karate.env: |item |
|@dev |778983-110833-110834|
|@qa |848079-419456-419457|
我们需要实现的是:
{ item:
'778983-110833-110834' }
,如果我在qa中运行测试,则必须创建{ item:
'848079-419456-419457' }
。我无法通过使用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|
在命令行上触发environment = qa:mvn test -Dcucumber.options="--tags @qa"
在命令行上触发environment = dev:mvn test -Dcucumber.options="--tags @dev"
由于我想使用karate.env属性,因此请告诉我是否还有其他实现方法。
答案 0 :(得分:1)
我认为您正在寻找的是: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 |