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插件相对多很多
相关推荐
高洁0114 分钟前
大模型微调进阶:多任务微调实战
人工智能·python·深度学习·机器学习·transformer
2401_8654396318 分钟前
mysql如何处理升级后的身份认证兼容性_mysql_native_password配置
jvm·数据库·python
zopple18 分钟前
四大编程语言对比:PHP、Python、Java与易语言
java·python·php
NotFound48619 分钟前
Flask项目目录怎么分_MVC架构在Flask应用中的常见目录树
jvm·数据库·python
2401_8971905524 分钟前
JavaScript对象浅拷贝:Object-assign的合并规则
jvm·数据库·python
Shorasul29 分钟前
如何用 fill 配合 map 初始化一个填充了不同对象的数组
jvm·数据库·python
kaikaile199531 分钟前
C# 文件编码转换工具
开发语言·c#
weixin_5860614632 分钟前
golang如何使用go-redis客户端_golang go-redis客户端使用教程
jvm·数据库·python
m0_3776182344 分钟前
C# 异步范围Asynchronous Disposal方法 C# await using如何使用
jvm·数据库·python
沐雪轻挽萤1 小时前
10. C++17新特性-保证的拷贝消除 (Guaranteed Copy Elision / RVO)
开发语言·c++