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插件相对多很多
相关推荐
非自律懒癌患者1 分钟前
‘module1 is module2‘ VS ‘module1 == module2‘
python·深度学习·计算机视觉
郝学胜-神的一滴2 分钟前
李航《机器学习方法》全面解析与高效学习指南
人工智能·python·算法·机器学习·数学建模·scikit-learn
superman超哥4 分钟前
Rust 依赖管理与版本控制:Cargo 生态的精妙设计
开发语言·后端·rust·rust依赖管理·rust版本控制·cargo生态
龙腾AI白云5 分钟前
深度学习—卷积神经网络(1)
python·深度学习·神经网络
资生算法程序员_畅想家_剑魔6 分钟前
Java常见技术分享-19-多线程安全-进阶模块-并发集合与线程池-线程池框架
java·开发语言
黎雁·泠崖6 分钟前
C 语言文件操作高阶:读取结束判定 + 缓冲区原理 + 常见错误
c语言·开发语言·缓存
雪花desu7 分钟前
【Hot100-Java简单】/LeetCode 283. 移动零:两种 Java 高效解法详解
数据结构·python·算法
沐知全栈开发8 分钟前
Ruby Dir 类和方法
开发语言
蜡笔弄丢了小新11 分钟前
nohup java -jar 文件名
java·python·jar
一杯咖啡Miracle14 分钟前
UV管理python环境,打包项目为docker流程
python·算法·docker·容器·uv