运行两个不同目录中不同python脚本的测试用例

时间:2018-02-09 12:17:20

标签: testing automated-tests robotframework

我想运行.robot文件来测试两个不同的python脚本,它们位于不同的目录中。我的.robot文件在*** Settings *** | Library | Process *** Test Cases *** | Use Case 1 - Scp Test | | [Documentation] | This .robot file tests the useCase1ScpTest.py by checking the stdout. | | [Tags] | use case 1 | critical | scpTest | | ${result}= | run process | python | /home/alperen/Desktop/scpTest/useCase1scpTest.py | | Should be equal as integers | ${result.rc} | 0 | | Should be equal as strings | ${result.stdout} | Passed. | Dummy test | | [Documentation] | Dummy text | | [Tags] | foo | bar | runScriptOnRemote | | ${result}= | run process | python | /home/alperen/Desktop/runScriptOnRemote/masterScript.py | | Should be equal as integers | ${result.rc} | 0 | | Should be equal as strings | ${result.stdout} | Passed. 中,如下所示:

def recv():
    while True:
        data = s.recv(BUFFER_SIZE).decode()
        if not data: break
        print(data)

def send():
    while True:
        message = str(input())
        if message != "/exit":
            message = name + ": " + message
        s.send(message.encode())

如果我运行上面的代码,Dummy Test会失败并显示“Failed。!= Passed”消息。因为masterScript.py最有可能打印“失败”。但是,如果我使用我的.robot文件将masterScript.py复制到同一目录,则Dummy Test结果为pass。谁能帮助我理解为什么会这样?有没有办法在不复制masterScript.py的情况下通过Dummy Test?提前谢谢。

编辑:masterScript.py在远程计算机上运行另一个名为hello.py的脚本(它打印“hello world”)。如果打印“hello world”,则masterScript.py文件将打印“Passed”。和“失败”。否则。

2 个答案:

答案 0 :(得分:2)

我修改了masterScript.py,其中包含类似

的内容
command = [ "python", "hello.py" ]

"hello.py"更改为完整目录,类似于"/home/alperen/Desktop/runScriptOnRemote/hello.py",感谢Psytho的建议。

答案 1 :(得分:0)

使用--pythonpath开关运行robot,将其指向masterScript.py路径。它不是最优雅的解决方案,但它有效