我尝试使用"运行流程" Robot Framework脚本中的Process库中的关键字,用于在与当前文件夹具有不同路径的文件夹中运行带有参数的perl脚本。
Run Process ./post.pl arg1 arg2 shell=True cwd=/a/b/c
运行时,会抛出错误:
Keyword 'Process.Run Process' expected at least 1 non-keyword argument, got 0.
有谁知道可能导致这种情况的原因以及解决方法?
任何帮助将不胜感激!谢谢!
答案 0 :(得分:1)
当arg1
或arg2
包含Robot Framework自身识别的符号时,可能会发生此问题。确保你逃脱反斜杠。
例如,请参阅以下命令:
curl <args> "<url>/download?job=<name>"
这将导致“关键字'Process.Run Process'预期至少有1个非关键字参数,得到0”。问题是,Robot Framework认为=
是一个赋值,所以你需要逃避它:
curl <args> "<url>/download?job\=<name>"
请注意job\=<name>
而不是job=name
。不需要在命令及其参数之间添加多个空格。
答案 1 :(得分:0)
通常,在这种情况下,问题出在空格上 - 正如我在类似情况下所观察到的那样。因此,我遵循的是在机器人框架命令和参数/命令之间保持相同的空间,然后在以下参数 w.r.t. 中保持相同的空间。机器人框架命令。
即
Run Process ./post.pl arg1 arg2 shell=True cwd=/a/b/c
每个间隔相等(例如,在上述情况下为 ~4)。但排除./post.pl arg1 arg2
如果这不能解决,那么通常会很有趣地注意到 arg1
和 arg2
在那里使用的扩展版本。尝试通过直接替换执行,以在您的上下文中获得恰到好处的间隔/缩进用法。