在RobotFramework中使用Run Process关键字的语法

时间:2019-02-04 16:34:06

标签: python robotframework

我的文件夹布局如下

int

当我手动导航到PythonLibraries文件夹并运行以下命令时,脚本运行并且该函数正常运行,并带有参数'Test123'。

-- Keywords
-- Tests
  -- MyTest.robot
-- PythonLibraries
  -- MyPythonScript.py
-- Results

我现在正尝试使用Process Library将其引入到我的RobotFramework中的MyTest.robot中。我试过同时使用“运行过程”和“启动过程”,但没有运气。我知道我需要包括一些配置以将脚本指向我的PythonLibraries文件夹。我还需要能够举例,例如。测试123。

python -c 'import MyPythonScript; MyPythonScript.My_Function();' Test123

我需要有关如何编写此代码的语法的帮助。除非您只想打印到终端,否则对此在线支持是有限的,这对我没有太大帮助。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:2)

重要的是要记住,对于命令行上的命令,引号是 shell 的要求,而不是python。因此,当从shell以外的东西执行相同的命令行时,您需要使用适当的引号(或根本不用引号)。

对于机械手,引号是参数之间的空格。换句话说,您不需要像在shell中那样使用单引号来告诉python命令的开始和结束位置,这就是两个或多个空格的用途。

在您的情况下,从Start Process运行的命令是“ python”,该命令的参数是“ -c”,整个脚本和“ Test123”。他们每个人都需要使用机器人的“引用”-每个人周围都有空格。

最后,关键字的关键字参数必须在要运行的命令之后 之后,在非关键字参数之后。

以下应该起作用。我使用了多行代码,以便更轻松地查看各个参数

${result}= Start Process      
...  python     
...  -c    
...  import MyPythonScript; MyPythonScript.MyFunction() 
...  Test123  
...  cwd=${ROOT}/PythonLibraries

另一种写法是:

${result}= Start Process      
...  python    -c    import MyPythonScript; MyPythonScript.MyFunction()  Test123 
...  cwd=${ROOT}/PythonLibraries