2017-05-10 22 views
0

我试图使用Robot Framework脚本中的进程库中的“Run Process”关键字来运行带有不同路径的文件夹中的参数的perl脚本当前文件夹。运行进程抛出错误“预计至少有一个非关键字参数,得到0”

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. 

有谁知道什么可能导致这个问题以及如何解决它?

任何帮助将不胜感激!谢谢!

+2

我不知道这是否是唯一的问题,但似乎在'./post.pl','arg1'和'arg2'之间只有一个空格。每个之间需要两个空格。 –

+0

如@BryanOakley指出,这应该是如下: '运行过程 ./post.pl ARG1 ARG2壳 =真 CWD =/A/B/C' – jozefow

+0

我没有在post.pl,arg1和arg2之间使用一个空格,在shell = True和cwd =/a/b/c之前使用三个空格。但它仍然会抛出同样的错误。 –

回答

0

arg1arg2包含Robot Framework自身识别的符号时,可能会发生此问题。确保你使用反斜杠来逃避。

例如,参见下面的命令:

curl <args> "<url>/download?job=<name>" 

这将导致在“预期至少1个非关键字参数关键字‘Process.Run过程’,得到0”。问题是,机器人框架认为=是一个赋值,所以你要逃避它:

curl <args> "<url>/download?job\=<name>" 

注意job\=<name>而不是job=name。没有必要在命令和它的参数之间添加多个空格。

相关问题