【问题标题】:Karate:How to make data initialization only execute once空手道:如何让数据初始化只执行一次
【发布时间】:2022-12-07 10:33:11
【问题描述】:

在此功能文件中,@setup 场景将运行两次,因为还有其他两个场景概述使用它 特征:

@设置 设想:

def 数据 = [{a: 1}, {a: 2}, {a: 3}] 场景大纲:行

打印'一个:',一个

例子: |空手道.setup().data |

场景大纲:测试行

  • 打印'测试a:',a

例子: |空手道.setup().data |

如何使用@setup 使场景只运行一次?

我想让带有@setup 的场景只运行一次。

【问题讨论】:

  • 在场景大纲中使用 once 关键字。此关键字可用于确保一组特定的步骤在给定的测试运行中仅执行一次
  • 如何使用once关键字?

标签: automated-tests karate bdd data-driven-tests


【解决方案1】:

这是您的解决方案。您可以运行它并亲自查看。

Feature:

@setup
Scenario:
* def fun = function(){ karate.log('function executed'); return [{a: 1}, {a: 2}] }
* def data = callonce fun

Scenario Outline:
* print 'first:', __row

Examples:
| karate.setup().data |

Scenario Outline:
* print 'second:', __row
    
Examples:
| karate.setup().data |

【讨论】:

  • 如图所示,@setup 仍然运行两次。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-09
  • 1970-01-01
  • 1970-01-01
  • 2020-09-08
  • 2011-12-06
  • 1970-01-01
相关资源
最近更新 更多