类似于callonce读取callSingle的结果

问题描述 投票:0回答:1

是否可以将callSingle的结果读入当前范围,类似于callonce?

通过 callonce,我们可以简单地读取该功能的结果,并将结果添加为当前范围的一部分。

即...

* callonce read('callonceVScallsingleInfo.feature')

我尝试了几种不同的方法(如果不会变得过于复杂,可以提供示例),但无法读取 callSingle 调用的结果。我发现,访问 callSingle 调用中的值的唯一方法是将结果分配给变量。

即...

* def constants = karate.callSingle('callonceVScallsingleInfo.feature')

由于我们的常量有相当多的变量(全部以 json 对象的形式返回),并且文件是在多个功能之间共享的,因此在每个值前面加上constants.xxx 前缀而不是简单地调用变量 xxx 本身会非常麻烦。

目前我们在功能文件的后台使用 callonce 方法,但随着我们添加更多功能文件,我们希望限制此文件的调用在所有调用功能文件中仅运行一次。我们可以将这些值放入配置中,但这需要我们限制哪些功能文件获得每个变量的值,因为我们对不同的功能文件集使用不同的值。

karate
1个回答
0
投票

一旦您拥有任何 JSON 对象,您就可以使用

karate.set(json)
将其中的所有键转储为变量。事实上,这就是
call / callonce
在幕后所做的事情。

所以这应该有效:

* karate.set(constants)
© www.soinside.com 2019 - 2024. All rights reserved.