Robot Framework中Run Process关键字无法识别--c++参数问题
Robot Framework中spatch命令--c++参数失效的解决办法
问题根因
你在命令行和Shell脚本里能正常运行的spatch --sp-file test.cocci --dir ./ --c++,放到Robot Framework的Run Process关键字中就失效,还出现find: paths must precede expression: 'name'错误,本质是Robot Framework对带加号的参数解析出了问题,没把--c++当成一个完整参数传递给spatch。
可行解决方法
拆分参数传递(最稳妥)
别把整个命令揉成一个字符串传给Run Process,把每个参数单独拆出来写,让Robot Framework能精准识别每个参数:Run Process spatch --sp-file test.cocci --dir ./ --c++调用系统shell执行
如果不想拆分参数,给Run Process加个shell=True参数,让它通过系统shell来执行整条命令,这样参数解析逻辑和命令行一致:Run Process spatch --sp-file test.cocci --dir ./ --c++ shell=True参数转义尝试
要是前两种方法都不行,试试给加号加反斜杠转义,强制让Robot Framework把--c++当成单个参数:Run Process spatch --sp-file test.cocci --dir ./ --c\+\+
验证方式
改完用例后运行一下,看spatch能不能正常处理C++文件,同时确认find那行错误消失,就说明参数生效了。
内容的提问来源于stack exchange,提问作者Charlene
相关产品推荐
相关产品推荐

