Intellij中Feature文件赋值变量无法填充问题求助
问题描述
我通过以下方式调用Feature文件:
def acctNum = db.results[0].XXXdef retCustMod = call read('classpath:features/core/xxx.feature') {entityId: #(acctNumS),modeOfPayment: #(modeOfPay), amountValue: #(flowAmt), execstartdt: #(execstartdt), payAhead: #(payAheadFlg), collRefNum: #(refNum),tranId: #(tranId), tranDt: #(tranDt)}
在被调用的Feature文件中会调用一个XML,我将上述变量作为输入传入该XML,但XML接收到的不是实际数据而是变量名本身。尝试过多次修改均无效,特此求助。
可能的原因及解决方案
1. 修正Feature调用的变量传递语法
在Cucumber/Groovy的call read语法中,传递变量不需要用#()包裹——你当前的写法会把#(acctNumS)这类标记当作字符串直接传递,而非变量的实际值。
修改调用代码为:
def retCustMod = call read('classpath:features/core/xxx.feature') { entityId: acctNumS, modeOfPayment: modeOfPay, amountValue: flowAmt, execstartdt: execstartdt, payAhead: payAheadFlg, collRefNum: refNum, tranId: tranId, tranDt: tranDt }
2. 确保XML模板正确插值变量
如果被调用的Feature是通过模板生成XML,要根据模板语法正确引用变量:
- 若使用Groovy模板,XML中需用
${变量名}的格式插值:
<request> <entityId>${entityId}</entityId> <modeOfPayment>${modeOfPayment}</modeOfPayment> <!-- 其他字段依此类推 --> </request>
- 若通过代码拼接XML,要直接取用传入的变量值,而非写死变量名字符串。
3. 验证变量作用域与赋值
确认acctNumS、modeOfPay等变量在当前脚本作用域内可访问,且已被正确赋值。可以在调用前添加日志输出验证:
println "acctNumS实际值: ${acctNumS}" println "modeOfPay实际值: ${modeOfPay}"
内容的提问来源于stack exchange,提问作者Prathamesh
相关产品推荐
相关产品推荐

