You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确传递karate.scenario.failed至其他Karate场景?

问题解决方法

你遇到的问题核心是参数表达式的求值时机不对:当你在karate.call的参数中直接写karate.scenario.failed时,这个表达式是在被调用的updateJama.feature场景上下文里才会被计算,此时karate.scenario指向的是被调用的那个场景,而非触发afterScenario的原执行场景,导致拿到的状态不符合预期。

正确的实现方式是先在原场景上下文里捕获失败状态,再传给被调用的feature:

configure afterScenario = 
"""
// 先在原场景上下文中获取失败状态并保存到变量
var currentFailed = karate.scenario.failed;
// 再将变量传入被调用的feature
karate.call(helperFolder + 'jama/updateJama.feature', {id: jamaId, failed: currentFailed});
"""

这样currentFailed会在afterScenario触发时(原场景执行完毕的上下文)立即求值,拿到的是原场景的真实失败状态,再传递给updateJama.feature就可以正确更新结果了。

内容的提问来源于stack exchange,提问作者user14146382

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 03:01:21