python - 从脚本中运行 pytest 并将字符串输出保存到变量
问题描述
我想从脚本中运行 Pytest 并将输出保存为字符串。就像是:
test_output=pytest.main(['-qq', '-x', test_dir])
print(test_output)
这可能吗?我知道我可以将它写入一个文件然后读取该文件,但这似乎不必要地复杂。
解决方案
你可以使用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)
推荐阅读
- php - Twitter 提供商,不会将我重定向到回调
- r - R如何清除内存
- spring-webflux - 使用 bodyToFlux 方法的 webClient 响应合并所有接收到的响应而不是将其分离出来
- javascript - 显示示例反应项目的代码时,codepen中的html和js选项卡之间的关系?
- java - 使用 Java 的 SQL 查询构建器的设计方法
- json - 如何将嵌套的 JSON 数据转换为 Pandas 数据框?
- python - 使用pyinstaller打包后python中的程序不起作用
- c++ - (OpenCV4.1) /usr/bin/ld: 找不到 -lopencv_nonfree
- javascript - 如何在 HTML5 Canvas 中更改图像重复模式
- python - Python - 如何阅读 Sharepoint excel 工作表特定工作表