我想运行.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”。和“失败”。否则。
答案 0 :(得分:2)
我修改了masterScript.py,其中包含类似
的内容command = [ "python", "hello.py" ]
将"hello.py"
更改为完整目录,类似于"/home/alperen/Desktop/runScriptOnRemote/hello.py"
,感谢Psytho的建议。
答案 1 :(得分:0)
使用--pythonpath开关运行robot,将其指向masterScript.py路径。它不是最优雅的解决方案,但它有效