Jenkins调用Python脚本时PrintTestCases参数缺失故障求助
问题分析与解决
错误根源
函数PrintTestCases定义时需要4个独立的位置参数:authentication, style, ip, accounting,但你在调用时把四个参数打包成一个列表传递,相当于只传了1个参数,函数自然会提示缺少剩余3个必填参数。
看主脚本的调用代码:
PrintTestCases([str(authentication), str(style), str(ip), str(accounting)])
这里的[...]创建了一个列表,作为单个参数传入函数,完全不符合函数的参数要求。
修复方案
直接传递四个独立参数,去掉包裹的方括号:
PrintTestCases(str(authentication), str(style), str(ip), str(accounting))
另外补充一个逻辑细节:你当前执行的命令是python3 -u main NONE NONE NONE ACC,但函数ACC分支的匹配条件是['PRIVATE', 'NONE', 'NONE'],所以会输出Wrong Test Case。如果要触发Test Case Number 2,需要把第一个参数改为PRIVATE,或者根据实际需求调整匹配规则。
验证示例
执行以下命令会输出Test Case Number 2:
python3 -u main PRIVATE NONE NONE ACC
执行以下命令会输出Test Case Number 1:
python3 -u main NONE NONE NONE NOACC
内容的提问来源于stack exchange,提问作者Ciro
相关产品推荐
相关产品推荐

