【问题标题】:How to put PyTest test case report into a variable如何将 PyTest 测试用例报告放入变量中
【发布时间】:2020-11-11 22:23:11
【问题描述】:

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

@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...

【问题讨论】:

  • 您可以使用io.StringIO 尽早对sys.stdout 进行猴子补丁,并将其用于输出收集。问题是为什么你想要完整的输出以及你想要定制什么。例如。您可以轻松添加自定义报告部分或标题信息。

标签: python selenium automated-tests pytest


【解决方案1】:

这是通过直接从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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    • 1970-01-01
    • 2013-06-25
    • 1970-01-01
    相关资源
    最近更新 更多