Python 从脚本中运行pytest并将字符串输出保存到变量中

Python 从脚本中运行pytest并将字符串输出保存到变量中,python,pytest,Python,Pytest,我想在脚本中运行Pytest,并将输出保存为字符串。比如: test_output=pytest.main(['-qq', '-x', test_dir]) print(test_output) 这可能吗?我知道我可以将它写入一个文件,然后读取该文件,但这似乎不必要地复杂。我认为如果你有一个虚拟环境,你可以在那里设置环境变量。这样你就可以读写它们了。但是创建文件可能更容易。 您可以使用contextlib.redirect\u stdout: import io from cont

我想在脚本中运行Pytest,并将输出保存为字符串。比如:

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

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

我认为如果你有一个虚拟环境,你可以在那里设置环境变量。这样你就可以读写它们了。但是创建文件可能更容易。

您可以使用
contextlib.redirect\u 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)