如何将 table 与 .feature 文件分开(空手道框架)
How to separate table from .feature file (karate framework)
这是一个简单的例子:
Scenario: Table example
* table dogs
| name | age |
| 'Charlie' | 2 |
| 'Jack' | 4 |
| 'Rock' | 9 |
* match dogs == [{name: 'Charlie', age: 2}, {name: 'Jack', age: 4}, {name: 'Rock', age: 9}]
是否可以将 table 移动到另一个文件,然后直接导入?如果是,具体如何?
提前致谢
对于这个用例,我建议使用 JSON 而不是 table,它将很好地导入,并且具有被大多数 IDE-s 等编辑 table 的优势.
* def dogs = read('dogs.json')
* match dogs == [{name: 'Charlie', age: 2}, {name: 'Jack', age: 4}, {name: 'Rock', age: 9}]
你也可以这样做:
* call read('dogs.feature')
* match dogs == [{name: 'Charlie', age: 2}, {name: 'Jack', age: 4}, {name: 'Rock', age: 9}]
并且在dogs.feature
Feature:
Scenario:
* table dogs
| name | age |
| 'Charlie' | 2 |
| 'Jack' | 4 |
| 'Rock' | 9 |
编辑:因为一些团队坚持Excel(我不推荐),如果适用的话也请参考这个答案:
如果您想在设计时执行此操作,例如,从另一个数据源导入 table,您可以使用一些设计工具 CukeTest,它允许您进行可视化编辑,将数据从 *.csv 文件导入 Table 或小黄瓜文件示例。您可以将 Excel 数据文件保存为 *.csv 格式。
如果您想在运行时执行此操作,则有很多方法可以读取数据并以编程方式对其进行解析,通常是从 *.json 文件或 *.csv 文件。
这是一个简单的例子:
Scenario: Table example
* table dogs
| name | age |
| 'Charlie' | 2 |
| 'Jack' | 4 |
| 'Rock' | 9 |
* match dogs == [{name: 'Charlie', age: 2}, {name: 'Jack', age: 4}, {name: 'Rock', age: 9}]
是否可以将 table 移动到另一个文件,然后直接导入?如果是,具体如何?
提前致谢
对于这个用例,我建议使用 JSON 而不是 table,它将很好地导入,并且具有被大多数 IDE-s 等编辑 table 的优势.
* def dogs = read('dogs.json')
* match dogs == [{name: 'Charlie', age: 2}, {name: 'Jack', age: 4}, {name: 'Rock', age: 9}]
你也可以这样做:
* call read('dogs.feature')
* match dogs == [{name: 'Charlie', age: 2}, {name: 'Jack', age: 4}, {name: 'Rock', age: 9}]
并且在dogs.feature
Feature:
Scenario:
* table dogs
| name | age |
| 'Charlie' | 2 |
| 'Jack' | 4 |
| 'Rock' | 9 |
编辑:因为一些团队坚持Excel(我不推荐),如果适用的话也请参考这个答案:
如果您想在设计时执行此操作,例如,从另一个数据源导入 table,您可以使用一些设计工具 CukeTest,它允许您进行可视化编辑,将数据从 *.csv 文件导入 Table 或小黄瓜文件示例。您可以将 Excel 数据文件保存为 *.csv 格式。
如果您想在运行时执行此操作,则有很多方法可以读取数据并以编程方式对其进行解析,通常是从 *.json 文件或 *.csv 文件。