如果示例的列过多,则每一行都将太长而无法阅读!

时间:2019-05-14 16:49:22

标签: karate

如果示例的列过多,则每一行都将太长而无法阅读!

Feature:

  Background:

  Scenario Outline:
    * match '<msg>' == <prefix> + ',' + '<end>'
    Examples:
      | prefix | end   | msg         |
      | hello  | mike  | hello,mike  |
      | hello  | jerry | hello,jerry |

会不会是这样:

Feature:

  Background:
    Examples:
    | prefix |
    | hello  |

  Scenario Outline:
    * match '<msg>' == <prefix> + ',' + '<end>'
    Examples:
      | end   | msg         |
      | mike  | hello,mike  |
      | jerry | hello,jerry |

我想将示例分成几部分,或者在Outline之前设置基础示例。我应该怎么做?

1 个答案:

答案 0 :(得分:1)

空手道在最新版本0.9.X中以多种方式解决了这一问题,请看

  1. 按照您的要求,我们可以在空手道中使用table,在Examples:之前定义Scenario Outline:个表,
Feature: my feature
  Background: BG
    * table myExample
      | prefix | end   | msg         |
      | 'hello'  | 'mike'  | 'hello,mike'  |
      | 'hello'  | 'jerry' | 'hello,jerry' |

  Scenario Outline: SOW
    * match '<msg>' == '<prefix>' + ',' + '<end>'
    Examples:
    | myExample |

相同的内容可以保留在另一个功能文件中,并在此功能文件中读取,但是不要复杂,因为下面还有其他一些解决方案。

2.karate将所有这些tableExamples:视为JSON的数组

通常您在上面的示例将表示为

[
  {
    "prefix": "hello",
    "end": "mike",
    "msg": "hello,mike"
  },
  {
    "prefix": "hello",
    "end": "jerry",
    "msg": "hello,jerry"
  }
]

因此,空手道允许您使用空手道的dynamic scenario outline feature

ExamplesJSON格式定义这些csv

如果您觉得示例太大而无法容纳在功能文件中,请将其保存在csv文件中,并阅读Examples

Feature: my feature
  Background: BG
    * def myExample = read("myExample.csv")

  Scenario Outline: SOW
    * match '<msg>' == '<prefix>' + ',' + '<end>'
    Examples:
    | myExample |

同样适用于JSON,以JSON数组的形式提供数据。