如何在语法上将单独的.feature文件中的表用于多个.feature文件中的多个方案大纲? 我正在努力只在一个地方更新测试数据,并获得所有好处。
我目前有一个Scenario Outline
和一个简单的Examples
表,如下所示:
Given path 'GetIds'
* header Authorization = auth
* request { Id: <Id> }
* method post
* status 200
Examples:
| Id |
| 'a' |
| 'b' |
查看Karate - Possible to put scenario in a loop?结果中的链接似乎是我应该看的地方,但是我无法推断我的Examples.feature文件应该是什么样子。
编辑: 下面的Cucumber示例对我来说似乎很清楚(从Cucumber: Scenario Outline reusing examples table明显地被盗了)
Examples:{'datafile':'resources/testdata.txt'}
但在空手道中显然无效。
Edit2:
创建一个单独的ids.json文件并通过* def ids = read('ids.json')
进行读取即可。
像这样使用它:
Feature: Dummy
Background:
* def ids = read('ids.json')
Scenario: GetIds
* print ids
* print ids.id
* match each ids contains { id: #string }
上面给出的将以json格式传递旧Examples
表中的数据。
但是我没有在* print ids.id
上获得每个id的输出,并且我看不到GetIds场景执行了多次。
我希望它能对{s {3}}
答案 0 :(得分:1)
问题是您根本不会使用Scenario Outline
或Examples
。将测试数据循环为JSON数组的“空手道方式”在以下方面有所不同:
Scenario Outline --> a second feature file
Examples --> a JSON array
所以我要做的是:
* def ids = read('ids.json')
* def result = call read('called.feature') ids
在called.feature
中:
@ignore
Feature:
Scenario:
* print 'id:', id