正在获取`org.graalvm.PolylobtException:ReferenceError:`-从空手道0.9.5升级到空手道1.1.0.RC3之后 [英] Getting `org.graalvm.polyglot.PolyglotException: ReferenceError:` - after upgrading to karate 1.1.0.RC3 from karate 0.9.5
本文介绍了正在获取`org.graalvm.PolylobtException:ReferenceError:`-从空手道0.9.5升级到空手道1.1.0.RC3之后的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
描述:升级到空手道1.1.0.RC3后收到参考错误消息
步骤: 执行测试功能文件
测试功能
Scenario: Get custom request
* def testUtils = call read('classpath:features/utils.feature')
* def getRequest = testUtils.customRequest()
* print getRequest
Utils.Feature
Feature: common utilities
Scenario:
* def randomAlphabetic = function (count) { return org.apache.commons.lang3.RandomStringUtils.randomAlphabetic(count) }
* def customRequest =
"""
function() {
var name = randomAlphabetic(2)
return {
name:name,
city:'Bangalore'
}
}
"""
错误消息:
org.graalvm.polyglot.PolyglotException: ReferenceError: "randomAlphabetic" is not defined
- <js>.:anonymous(Unnamed:2)
Git Repo供参考-https://github.com/naveenkrao/karate-sample-project
推荐答案
新版本中JS函数的重用有一些限制。有多种变通办法。下面是在JS块本身中移动可重用函数的方法:
* def customRequest =
"""
function() {
var randomAlphabetic = function (count) { return java.lang.System.currentTimeMillis() + '' };
var name = randomAlphabetic(2);
return {
name:name,
city:'Bangalore'
}
}
"""
或者,如果您使randomAlphabetic
函数在全球范围内可用,例如通过karate-config.js
,它也可能起作用。
这是我们努力解决的JS引擎更改的结果。如果这对您有问题,我们非常欢迎您贡献代码。我们不这么认为,有很多方法可以创建可重用的函数,遵循一些规则--保持它们简单,对于复杂的逻辑首选Java,不要太多地混合或组合JS或Java。
如果您觉得需要更新文档,也欢迎您提供文档。
这篇关于正在获取`org.graalvm.PolylobtException:ReferenceError:`-从空手道0.9.5升级到空手道1.1.0.RC3之后的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文