pytest 通过conftest.py获取测试所有执行case断言失败的结果
conftest.py
-
import pytest
-
from datetime import datetime
-
-
-
def pytest_exception_interact(node, call, report):
-
if report.failed:
-
with open("error.log", "a", encoding="utf-8") as f:
-
test_case = f"测试文件:{node.nodeid} | 测试函数:{node.name}"
-
failure_reason = f"失败原因:{report.longrepr}"
-
execution_time = f"执行时间:{datetime.now().isoformat()}"
-
-
f.write(test_case "\n")
-
f.write(failure_reason "\n")
-
f.write(execution_time "\n")
-
f.write("\n")
-
f.write("=" * 80 "\n")
-
f.write("\n")
-
这段代码使用了pytest
的钩子函数pytest_exception_interact
来处理测试过程中的异常,并将异常信息记录到日志文件中。
代码的解析如下:
- 导入了
pytest
和datetime
模块。 - 定义了
pytest_exception_interact
函数,接受三个参数:node
、call
和report
。 - 在函数内部,使用
if
条件判断报告是否失败。 - 如果报告失败,打开名为
error.log
的日志文件,并以追加模式写入内容。 - 创建了
test_case
变量,用于存储测试文件和测试函数的信息。 - 创建了
failure_reason
变量,用于存储失败的原因。 - 创建了
execution_time
变量,用于存储执行时间。 - 将测试文件、测试函数、失败原因和执行时间写入日志文件。
- 添加分隔符和换行符。
通过使用pytest_exception_interact
钩子函数,可以在测试过程中捕获异常,并将异常信息记录到日志文件中。这样可以更方便地查看和分析测试过程中的失败原因和执行时间。
test22.py
-
import pytest
-
# from test11 import log_exceptions
-
-
# @log_exceptions
-
def test_divide():
-
assert 1 == 2
-
-
# @log_exceptions
-
def test_divide2():
-
assert 1 == '14'
-
-
-
def test_divide3():
-
assert 1 == 1
-
-
-
if __name__ == '__main__':
-
pytest.main(["-s", "test22.py"])
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgeaiic
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01