如何读取功能文件中的测试数据文件(json文件)仅一次



空手道有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

最新更新