如何在后台、在功能文件中只运行一次java类

如何在后台、在功能文件中只运行一次java类,java,karate,Java,Karate,我在一个功能文件的背景中有一句话 def token = Java.type("Calling a static method from a java class") 在我的功能文件中有4个场景,这个java类被调用了4次。如何只调用这个java类一次?根据空手道文档,您必须使用callonce 在后台使用def设置的变量将在每个场景之前重新设置。如果你正在寻找一种只做一次的方法 根据功能,查看callonce。另一方面,如果你是 预期一个场景会修改背景中的变量 这样以后的人就可以看到更新后的

我在一个功能文件的背景中有一句话

def token = Java.type("Calling a static method from a java class")

在我的功能文件中有4个场景,这个java类被调用了4次。如何只调用这个java类一次?

根据空手道文档,您必须使用
callonce

在后台使用def设置的变量将在每个场景之前重新设置。如果你正在寻找一种只做一次的方法 根据功能,查看callonce。另一方面,如果你是 预期一个场景会修改背景中的变量 这样以后的人就可以看到更新后的值——这不是你想要的 你应该想到它们,你应该把你的“流”结合成一个整体 脚本请记住,您应该能够对 场景或跳过一些via标记,而不影响任何其他标记。注意 并行运行程序将并行运行Scenario-s,这意味着它们 可以按任何顺序运行

请查收


我不懂空手道,但我猜:当你不想让一个方法被调用4次时,那么你就不应该让代码在4个地方这样做。换句话说,看看你是否可以调用该方法一次,然后以某种方式*存储*/缓存该令牌值,而不是一次又一次地获取它。这里我的要求是调用一个java文件。所以我们需要Java.type来调用它。call和callonce可以执行特性或JavaScript函数。检查有关如何从JavaScript调用Java类,甚至静态方法的示例。然后,将Java类包装到JavaScript函数中后,使用callonce只执行一次@以西结是对的,你应该接受这个答案