一、背景

我想要自己收集pytest的case运行结果数据

二、解决办法

在conftest.py文件中,加入如下方法:

def pytest_terminal_summary(terminalreporter, exitstatus, config):
    total = terminalreporter._numcollected  #这是所有的用例个数
    passed = len(terminalreporter.stats.get('passed', [])) #这是运行成功的用例个数
    failed = len(terminalreporter.stats.get('failed', [])) #这里运行失败的用例个数
    skipped = len(terminalreporter.stats.get('skipped', [])) #这里是skip的运行个数
    # duration = time.time() - terminalreporter._sessionstarttime #这里是运行的时间
    # duration_time = round(duration, 2)
    url = "xxxx" #这里是触发teams机器人通知的url
    msg = f"Open Api Test Result: Total Cases:{total}; Passed:{passed}; Failed:{failed}; Skipped:{skipped}; Allure Report: http://xxxx/"
    print(msg)
    # body = {
    #     "groupId": "xxx",  #这里是要通知的群的groupId
    #     "msg": msg   #这里是要通知的内容
    # }
    # requests.Session().post(url, json=body, verify=False)  #调接口触发机器人通知

就可以了

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐