pytest命令执行测试用例,捕获输出内容的三种方式

发布时间:2024年01月03日

pytest有三种捕获输出的方式:

? fd(文件描述符)级别的捕获(默认):所有写入操作系统文件描述符1和2的内容将被捕获。

? sys级别的捕获:只有对Python文件sys.stdout和sys.stderr的写入操作会被捕获,不会捕获对文件描述符的写入操作。

? tee-sys捕获:Python对sys.stdout和sys.stderr的写入操作会被捕获,但同时也会将写入内容传递给实际的sys.stdout和sys.stderr。这允许输出内容实时显示并用于插件,例如junitxml(在pytest 5.4中新增)。

您可以通过命令行来影响输出捕获机制:

pytest -s # 禁用所有捕获

pytest --capture=sys # 将sys.stdout和sys.stderr替换为内存文件

pytest --capture=fd # 同时将文件描述符1和2指向临时文件

pytest --capture=tee-sys # 结合'sys'和'-s',捕获sys.stdout/stderr,并将其传递给实际的sys.stdout/stderr

文章来源:https://blog.csdn.net/songpeiying/article/details/135358725
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。