在直播网站做前端注意长沙网站建设规划
--capture 选项用于控制测试用例执行过程中标准输出(stdout)和标准错误输出(stderr)的捕获行为。
 --capture 的选项值:
 fd(默认)
 捕获文件描述符级别的输出(stdout 和 stderr)。
 使用此模式,所有的标准输出和标准错误都会被捕获,即使它们来自 C 扩展模块。
 sys
 捕获 Python 层级的 sys.stdout 和 sys.stderr。
 no
 不捕获输出,标准输出和错误直接显示在终端中。
 tee-sys
 将 sys.stdout 和 sys.stderr 的输出同时捕获并输出到终端(类似于实时查看日志的效果)。此选项在调试时非常有用。
 使用方式:
 可以在运行 pytest 时通过命令行指定:
pytest --capture=fd          # 默认行为
pytest --capture=sys         # 仅捕获 Python 层级输出
pytest --capture=no          # 不捕获输出,实时打印
pytest --capture=tee-sys     # 同时捕获并输出到终端 
示例:
 假设有一个测试文件 test_example.py:
import sysdef test_print():print("This is a test for stdout.")sys.stderr.write("This is a test for stderr.\n")assert True
 
1. 默认模式 (fd):
 运行命令:
pytest --capture=fd
 
输出:标准输出和错误不会直接显示在终端中,而是只在失败时打印或保存在日志中。
 2. 不捕获模式 (no):
 运行命令:
pytest --capture=no
 
输出:标准输出和标准错误会实时显示在终端中。
 3. tee-sys 模式:
 运行命令: 
pytest --capture=tee-sys
 
输出:标准输出和标准错误会实时显示在终端中,同时也会被捕获。
 配置到 pytest.ini:
 如果想始终使用某种捕获行为,可以将其添加到 pytest.ini 文件:
[pytest]
addopts = --capture=tee-sys
 
以下是我本地在执行过程中指定tee-sys时终端的输出:

---Captured log call--- 下面是网络请求的日志和执行的日志,即使用logging记录的日志。
总结:
 --capture 是一个灵活的选项,用于控制标准输出和错误的捕获方式。
 在调试时,--capture=no 或 --capture=tee-sys 通常更方便,能实时看到日志输出。
