gpt4 book ai didi

pytest - 我在哪里可以找到已通过的 py.test 测试的捕获标准输出?

转载 作者:行者123 更新时间:2023-12-01 04:01:44 25 4
gpt4 key购买 nike

我正在使用 py.test 报告 Hook (pytest_runtest_makereport() 和 pytest_report_teststatus())。

当 py.test 测试失败时,我可以在报告 Hook (在 report.sections[])中找到捕获的标准输出数据。

当 py.test 测试通过时,report.sections[] 列表为空。

我在哪里可以找到通过测试捕获的标准输出?

谢谢。

编辑:从源代码 (_pytest/capture.py) 来看,这似乎只有在测试未通过时才可用:

def pytest_runtest_makereport(self, __multicall__, item, call):
...
if not rep.passed:
addouterr(rep, outerr)

最佳答案

原来在item.outerr中可以找到该信息,它是两个Unicode字符串的元组;第一个是标准输出,第二个是标准错误。

请注意,py.test 在设置、调用和拆卸报告中指定了这些字符串,其中一些可能是空字符串。所以为了保存输出,而不用空字符串覆盖它,逻辑需要是:

stdout = item.outerr[0]
if stdout and len(stdout):
whatever.stdout = stdout

stderr = item.outerr[1]
if stderr and len(stderr):
whatever.stderr = stderr

关于pytest - 我在哪里可以找到已通过的 py.test 测试的捕获标准输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13091015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com