unittest 和 pytest 的区别

embedded/2025/1/16 0:02:46/

一、用例编写规则

1.unittest 提供了 test cases、test suites、test fixtures、test runner 相关的类,让测试更加明确、方便、可控。使用 unittest 编写用例,必须遵守以下规则:
(1)测试文件必须先 import unittest
(2)测试类必须继承 unittest.TestCase
(3)测试方法必须以“test_”开头
(4)测试类必须要有 unittest.main()方法

2.html" title=pytest>pytest 是 python 的第三方测试框架,是基于 unittest 的扩展框架,比 unittest 更简洁,更高效。使用 html" title=pytest>pytest 编写用例,必须遵守以下规则:
(1)测试文件名必须以“test_”开头或者"test"结尾(如:test_ab.py)
(2)测试方法必须以“test
”开头。
(3)测试类命名以"Test"开头。

二、用例前置和后置

1.unittest 提供了 setUp/tearDown,每个用例运行前、结束后运行一次。setUpClass 和 tearDownClass,用例执行前、结束后,只运行一次
2.html" title=pytest>pytest 提供了模块级、函数级、类级、方法级的 setup/teardown,比 unittest 的 setUp/tearDown 更灵活。

三、断言

1.unittest 提供了 assertEqual、assertIn、assertTrue、assertFalse。
2.html" title=pytest>pytest 直接使用 assert 表达式。

四、报告

1.unittest 使用 HTMLTestRunnerNew 库。
2.html" title=pytest>pytest 有 html" title=pytest>pytest-HTML、allure 插件。

五、失败重跑

1.unittest 无此功能。
2.html" title=pytest>pytest 支持用例执行失败重跑,html" title=pytest>pytest-rerunfailures 插件。

六、参数化

1.unittest 需依赖 ddt 库,
2.html" title=pytest>pytest 直接使用@html" title=pytest>pytest.mark.parametrize 装饰器。

七、用例分类执行

1、unittest 默认执行全部用例,也可以通过加载 testsuit,执行部分用例。
2、html" title=pytest>pytest 可以通过@html" title=pytest>pytest.mark 来标记类和方法,html" title=pytest>pytest.main 加入参数(“-m”)可以只运行标记的类和方法。


http://www.ppmy.cn/embedded/102928.html

相关文章

单向链表,双向链表,内核链表,栈,队列简单操作

1.单向链表 1.1创建空节点 link_t 为宏定义的链表节点结构体,typedef struct linknode{struct linknode pnext; DateType data; }link_t; 其中DateType为宏定义的数据类型#define int DateType; link_t *CreateLinkNode(void) {link_t *phead NULL…

单例模式(Singleton Pattern)

概念 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象…

【软件测试】软件测试生命周期与Bug

目录 📕 前言 🌴软件测试的生命周期 ​编辑🌲BUG 🚩 概念 🚩描述bug的要素 🚩bug的级别 🚩bug的生命周期 🏀先检查自身,是否bug描述不清楚 🏀站在用…

我在高职教STM32——ADC电压采集与光敏电阻(4)

大家好,我是老耿,高职青椒一枚,一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次,同行应该都懂的,老师在课堂上教学几乎是没什么成就感的。正是如此,才有了借助 CSDN 平台寻求认同感和成就感的想法。在这里,我准备陆续把自己花了很多心思设计的教学课件…

FPGA第 5 篇,FPGA技术优略势,FPGA学习方向,FPGA学习路线(FPGA专业知识的学习方向,FPGA现场可编程门阵列学习路线和方向)

前言 前几篇讲了一下FPGA的发展和应用,以及未来前景。具体详细,请看 FPGA发展和应用,以及未来前景https://blog.csdn.net/weixin_65793170/category_12665249.html 这里我们来,记录一下,FPGA专业知识的学习路线 一.…

C++的内存管理

感谢大佬的光临各位,希望和大家一起进步,望得到你的三连,互三支持,一起进步 个人主页:LaNzikinh-CSDN博客 收入专栏:C_LaNzikinh篮子的博客-CSDN博客 文章目录 前言一.内存的划分二.C语言中的中动态内存管理…

HTML粒子爱心

目录 写在前面 完整代码 代码分析 系列文章 写在最后 写在前面 教你用HTML语言实现粒子爱心动画的效果。 HTML,全称为HyperText Markup Language,即超文本标记语言,是构建网页的基本markup语言,它通过一系列标签tags来定义…

#QT 笔记一

重点:面试考试大概率涉及,需要不借助任何资料掌握。掌握:面试考试可能涉及,需要不借助任何资料掌握。熟悉:面试考试可能涉及,可以稍微参考资料掌握。了解:面试考试小概率涉及,面试拔…