python中unittest框架和pytest框架区别

unittest框架和pytest框架对比

类型 unittest框架 pytest框架
安装 标准库,无需额外安装 第三方单元测试库,需要安装
用例编写 测试类必须要继承 unittest.TestCase 测试类命名以"Test"开头,无需继承,用例可以是函数,也可以是类,测试方法和测试文件名必须以"test_"开头或者"_test"结尾
用例的前置和后置 提供了setUp/tearDown,每个用例运行前、结束后运行一次。setUpClass和tearDownClass,用例执行前、结束后,只运行一次 在函数前使用@pytest.fixture()装饰器,fixture使用范围可以是:function(函数级别)、class、module(模块级别)、package(包级别)、多个测试类可以共用一个session(定义一个方法-使用yield分割,yield前面的代码是前置,yield后面的代码则是后置)
断言 assertEqual、assertIn、assertTrue、assertFalse等 直接在assert 后面接表达式
测试报告 使用HTMLTestRunnerNew库 pytest-HTML、allure报告插件
失败重跑 不支持 通过插件rerunfailures支持重运行机制
参数化 使用ddt库 直接使用@pytest.mark.parametrize装饰器
收集用例 使用TestLoader类+TestSuite类 根据test模块自动收集用例
筛选用例 默认执行全部,可以筛选类名、函数名、模块名执行 通过@pytest.mark标记测试用例,执行前加-m即可运行标记的用例
插件 很少 比unittest插件相对多很多
相关推荐
兵慌码乱2 小时前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
luckdewei5 小时前
FastAPI 资产管理系统实战:复杂 ORM 关联、Alembic 迁移与 N+1 查询优化
python
aqi0011 小时前
15天学会AI应用开发(八)使用向量数据库实现RAG功能
人工智能·python·大模型·ai编程·ai应用
Csvn12 小时前
`functools.lru_cache` —— 一行代码搞定缓存加速
后端·python
金銀銅鐵1 天前
[Python] 从《千字文》中随机挑选汉字
后端·python
cup111 天前
[技术复盘] Windows Python 打包实战:Nuitka 环境踩坑总结与 CI 自动化构建全指南
python·ai·环境变量·ci·nuitka·skill
aqi001 天前
15天学会AI应用开发(七)有了大模型为什么还要引入RAG
人工智能·python·大模型·ai编程·ai应用
金銀銅鐵2 天前
用 Python 实现 Take-Away 游戏
python·游戏