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插件相对多很多
相关推荐
大不点wow6 小时前
Java序列化与反序列化:让对象走出JVM
java·开发语言·jvm
阿里嘎多学长6 小时前
2026-07-22 GitHub 热点项目精选
开发语言·程序员·github·代码托管
吃饱了得干活6 小时前
别再手动解析 LLM 输出了!LangChain 四种结构化输出方案对比
后端·python·langchain
噢,我明白了6 小时前
Java中日期和字符串的处理
java·开发语言·日期
爱刷碗的苏泓舒6 小时前
C 语言 if-else 与 switch-case 分支语句对比
c语言·开发语言
ikun_文6 小时前
Python进阶—函数编程
python·pycharm
MC皮蛋侠客6 小时前
uv 系列(三):依赖、锁文件与环境同步——可重复构建的核心
python·uv
量化吞吐机6 小时前
2026年交易想法转Python,中间先补规则转译
人工智能·python
-银雾鸢尾-6 小时前
C#中的泛型约束
开发语言·c#
用户298698530146 小时前
Python 实现 Excel 与 Markdown 互转的实用指南
后端·python·excel