难以在空手道中获取功能文件的有条件调用
难以在空手道中获取功能文件的条件调用。
很难弄清楚为什么该语法不编译。有什么想法吗?
* def authenticator = read('classpath:features/functions/oauth2.feature')
* def oauth = cloud_envs.includes(env) ? karate.call(authenticator) : {}
空手道。CALL
可以自己工作正常。无论我尝试什么,都只会失败。
错误是:
* def oauth = cloud_envs.includes(env) ? karate.call(authenticator) : {}0.031
js
js failed:
>>>>
01: cloud_envs.includes(env) ? karate.call(authenticator) : {}
<<<<
org.graalvm.polyglot.PolyglotException: TypeError: invokeMember (call)
on com.intuit.karate.core.ScenarioBridge@8216db failed due to: no applicable
overload found (overloads: [Method[public java.lang.Object
com.intuit.karate.core.ScenarioBridge.call(java.lang.String)],
Method[public java.lang.Object com.intuit.karate.core.ScenarioBridge.call(boolean,java.lang.String)], Method[public java.lang.Object com.intuit.karate.core.ScenarioBridge.call(java.lang.String,org.graalvm.polyglot.Value)],
Method[public java.lang.Object com.intuit.karate.core.ScenarioBridge.call(boolean,java.lang.String,org.graalvm.polyglot.Value)]], arguments: [JavaObject[classpath:features/functions/oauth2.feature (com.intuit.karate.core.Feature)] (HostObject)])
- <js>.:program(Unnamed:1)
classpath:features/group_info_queries.feature:10
由于此调用在同一测试中起作用,因此似乎应该有效:
* def token = cloud_envs.includes(env) ? 'Bearer ' + oauth.accessToken : 'n/a'
Trouble getting a conditional call of a feature file to work in Karate.
Having trouble figure out why this syntax does not compile. Any ideas?
* def authenticator = read('classpath:features/functions/oauth2.feature')
* def oauth = cloud_envs.includes(env) ? karate.call(authenticator) : {}
The karate.call
works fine on it's own. Just fails in the if-condition OR ternary, regardless of what I try.
The error is:
* def oauth = cloud_envs.includes(env) ? karate.call(authenticator) : {}0.031
js
js failed:
>>>>
01: cloud_envs.includes(env) ? karate.call(authenticator) : {}
<<<<
org.graalvm.polyglot.PolyglotException: TypeError: invokeMember (call)
on com.intuit.karate.core.ScenarioBridge@8216db failed due to: no applicable
overload found (overloads: [Method[public java.lang.Object
com.intuit.karate.core.ScenarioBridge.call(java.lang.String)],
Method[public java.lang.Object com.intuit.karate.core.ScenarioBridge.call(boolean,java.lang.String)], Method[public java.lang.Object com.intuit.karate.core.ScenarioBridge.call(java.lang.String,org.graalvm.polyglot.Value)],
Method[public java.lang.Object com.intuit.karate.core.ScenarioBridge.call(boolean,java.lang.String,org.graalvm.polyglot.Value)]], arguments: [JavaObject[classpath:features/functions/oauth2.feature (com.intuit.karate.core.Feature)] (HostObject)])
- <js>.:program(Unnamed:1)
classpath:features/group_info_queries.feature:10
Seems like it should work since this call, in the same test, works:
* def token = cloud_envs.includes(env) ? 'Bearer ' + oauth.accessToken : 'n/a'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我能够以这种方式工作。不知道为什么我必须这样黑客。丑陋,但有效。
I was able to get it to work this way. Not sure why I had to hack it like this. Ugly but it works.