首页 > 解决方案 > 如何将 PyTest 测试用例报告放入变量中

问题描述

当测试用例失败时,我正在使用钩子夹具生成自定义报告:

@pytest.hookimpl(tryfirst=True, hookwrapper=True)
def pytest_runtest_makereport(item, call):
    outcome = yield
    rep = outcome.get_result()
    extra = getattr(rep, 'extra', [])
    if rep.when == 'call' and rep.failed:

在进一步使用方面,是否可以将带有 stdout/stderr 的控制台 PyTest 报告转换为字符串变量?(在这个夹具中)例如report = outcome...

标签: pythonseleniumautomated-testspytest

解决方案


它是通过直接从rep对象获取所需信息来完成的,其中rep = outcome.get_result()

def __create_description(self, report):
    stdout = getattr(report, "capstdout")
    longreprtext = getattr(report, "longreprtext")
    delimiter = "\n=============================\n"
    description = delimiter + "Captured stdout:\n" \
                  + stdout + delimiter + "Traceback:\n" + longreprtext
    return description

推荐阅读