首页 > 解决方案 > 从脚本中运行 pytest 并将字符串输出保存到变量

问题描述

我想从脚本中运行 Pytest 并将输出保存为字符串。就像是:

   test_output=pytest.main(['-qq', '-x', test_dir])
   print(test_output)

这可能吗?我知道我可以将它写入一个文件然后读取该文件,但这似乎不必要地复杂。

标签: pythonpytest

解决方案


你可以使用contextlib.redirect_stdout

import io
from contextlib import redirect_stdout
import pytest

if __name__ == "__main__":
    buffer = io.StringIO()
    with redirect_stdout(buffer):
        pytest.main()
    out = buffer.getvalue()
    print(out)

推荐阅读