空手道有callonce,将调用一个功能或功能只一次在一个功能文件的所有场景?是否有类似的功能,在执行所有场景之前,只在功能文件中读取一次json文件。这可以通过向karate.callonce()传递一个函数来实现,然后该函数将只使用read函数来读取json文件。请回答我怎样才能正确地做到这一点?
我不想为此使用另一个特性文件。应该能够将函数名传递给callonce。
我试过空手道。callSingle和pass read函数读取json文件我个人认为从文件系统读取JSON文件是非常便宜的,所以你没有必要担心这个。
我所知道的唯一方法是这样的:
Feature:
Background:
* def dataFn = function(){ return read('data.json') }
* def data = callonce dataFn
Scenario: one
* print data
Scenario: two
* print data
但是你很可能会抱怨我们在这里为每个Scenario
初始化函数dataFn
;)在这种情况下,您可能需要寻找另一个框架。
我个人认为调用可重用的功能(用于数据设置)是可以的。编程语言一直在做这种重用。
编辑:嗯,我刚想起来这是可行的:
* def data = callonce read 'data.json'
解释如下:https://github.com/karatelabs/karate#call-vs-read