通过代码调用pytest并将结果保存到变量或文件

Call pytest through code and save results to variable or file

我正在通过我的代码使用 pytest.main()

调用 pytest

是否可以保存结果?分配给变量还是作为文件?我知道你可以通过 cmd as pytest > log.txt 来完成,在代码中调用它时有类似的东西吗?

重定向 sys.stdout 到变量 output:

import pytest
import sys
import io

if __name__ == '__main__':
    stdout_bak = sys.stdout  # backup stdout
    sys.stdout = io.StringIO()
    pytest.main()
    output = sys.stdout.getvalue()
    sys.stdout.close()
    sys.stdout = stdout_bak  # restore stdout

    print(output)