pytest 自定义runner执行器如何获取用例执行完成后的用例数量

问题

想写一个执行器,获取用例运行后成功的数量和失败的数量,然后通过机器人发送出来

目前了解到可以通过钩子函数pytest_terminal_summary 拿到用例执行完成后数量,但是不知道改如何在runner.py文件中拿到这个数据

你在钩子函数里处理这个逻辑就可以,拿到成功和失败的数量后,发给机器人

因为后续想做多设备兼容,思路是利用多线程或者进程为每个设备去跑一轮用例,然后再对每个设备的报告做一个汇总,如果在钩子里面处理这个逻辑就做不到这个汇总报告的效果

请问一下你这种方式可以吗,我按照这种方式,没有获取到执行结果

你怎么写的呀

在conftest文件里这样写的


不知道为啥不生效

类似这样

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