问题
想写一个执行器,获取用例运行后成功的数量和失败的数量,然后通过机器人发送出来
目前了解到可以通过钩子函数pytest_terminal_summary 拿到用例执行完成后数量,但是不知道改如何在runner.py文件中拿到这个数据
想写一个执行器,获取用例运行后成功的数量和失败的数量,然后通过机器人发送出来
目前了解到可以通过钩子函数pytest_terminal_summary 拿到用例执行完成后数量,但是不知道改如何在runner.py文件中拿到这个数据
你在钩子函数里处理这个逻辑就可以,拿到成功和失败的数量后,发给机器人
因为后续想做多设备兼容,思路是利用多线程或者进程为每个设备去跑一轮用例,然后再对每个设备的报告做一个汇总,如果在钩子里面处理这个逻辑就做不到这个汇总报告的效果
请问一下你这种方式可以吗,我按照这种方式,没有获取到执行结果
你怎么写的呀
类似这样
def pytest_terminal_summary(terminalreporter, exitstatus, config):
'''收集测试结果'''
# 解析通过的case的列表
pass_lis = [{"case_name": i.__getattribute__("nodeid").split("::")[-1],
"case_status": i.__getattribute__("outcome")} for i in
terminalreporter.stats.get('passed', []) if i.when != 'teardown']
# 解析失败的case的列表
fail_lis = [{"case_name": i.__getattribute__("nodeid").split("::")[-1],
"case_status": i.__getattribute__("outcome")} for i in
terminalreporter.stats.get('failed', []) if i.when != 'teardown']
final_result = pass_lis + fail_lis