Python 从脚本中运行pytest并将字符串输出保存到变量中
我想在脚本中运行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
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)