python - 如何使用 popen 获得运行机器人文件的结果?
问题描述
我希望能够检索使用 popen 运行的机器人测试的结果(无论是通过还是失败)。我想使用 popen 来支持对话框和不是对话框的测试。有没有办法检索结果?我在这里使用此页面的代码(链接)。
import sys
import subprocess
my_path = sys.executable
def run_process(command):
print("Running command: " + command)
p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)
while True:
if sys.version_info >= (3, 0):
nextline = str(p.stdout.readline(),"utf-8")
else:
nextline = p.stdout.readline()
if nextline == '' and p.poll() is not None:
break
sys.stdout.write(nextline)
sys.stdout.flush()
python_path = my_path + ' -m robot.run'
Location ='C:/Users/Desktop/pass_or_fail.robot'
command=python_path+' '+Location
run_process(command)
print(my_path)
解决方案
而不是popen
我建议使用robot.run.run_cli(arguments=None, exit=True)
Robot Framework API 函数。
from robot import run_cli # Run tests and return the return code. rc = run_cli(['--name', 'Example', 'tests.robot'], exit=False)
这将简化执行,同时具有相同的返回码。
返回代码的返回与在命令行上运行时类似。零表示已执行测试并且没有关键测试失败,最大 250 的值表示失败的关键测试的数量,251-255 之间的值表示机器人框架用户指南中记录的其他状态。
此外,通过以编程方式执行多次运行,robot.rebot.rebot_cli(arguments=None, exit=True)
API 调用可用于将所有结果合并到单个 log.html 和 report.html 文件中。
from robot import rebot_cli rebot_cli(['--name', 'Example', '--log', 'NONE', 'o1.xml', 'o2.xml'])
推荐阅读
- html - CSS 代码最大宽度在 Internet 上发布时不起作用
- javascript - 是否可以使用脚本/函数模拟按钮单击?
- ios - Cordova 7.1.0:在 iOS 上启动后出现白屏
- java - 如何切换到框架并访问其中的元素?
- c++ - 即使线程是可连接的,程序也会终止调用线程连接
- forms - Symfony 2.8 表单必填字段错误文本
- python - python - 如何将从xml文件中提取的值存储到python中的变量中?
- r - 摆脱 facet_grid 第一行中的空面板
- animation - 如何在 Edge 上删除动画 SVG 上的伪影
- ios - 如何从容器视图接收信息