Karate API框架-调用另一个功能文件中的函数



调用另一个功能文件中的函数

功能文件1-功能文件1.Feature

* def add2Number = 
"""
function (a,b){
var c = a+b;
return c}
"""
* def add3Number = 
"""
function (a,b c){
var d = add2Number(a,b) + c;
return d}
"""

功能文件2-功能文件2.Feature

* def obj = call read(featureFile1.feature)
* print obj.add2Number(1,2) 
* print obj.add3Number(1,2,3)

"print obj.add2Number(1,2(";这条线路运行良好"打印对象add3Number(1,2,3(";该行抛出错误如下org.graalvm.polyglot.PolyglotException:ReferenceError:";add2Number";未定义

问题:上面的代码只是一个用于解释的示例函数;引用错误:";add2Number";未定义";

有什么解决方案吗

我已经添加了我的解决方案-https://github.com/Sudharsandhoni/KarateDemo,

特点:解决方案1

场景:解决方案1描述:要解决错误:"org.graalv.PolyglotException:ReferenceError:";pi";未定义"。需要告诉(定义(调用文件中的pi是什么

  • def find=调用读取("Feature1.feature"(
  • def-pi=find.pi
  • 打印find.areaOfCircle(5(
  • 打印查找圆周(5(

Event尽管我找到了另一种方法,如果需要调用调用内部函数/变量的函数,那么也需要在调用特性中定义相同的函数。

如果只使用很少的内部属性,那么这可能很容易。但如果计数增加,则很难定义所有计数。

正在等待任何更好的解决方案。

尝试在文件1中为两个函数创建单独的场景,并为每个场景指定一个标记名。现在,使用标记和功能文件名,您可以调用特定的函数/功能。

最新更新