unittest vs pytest 对比
- unittest 像“手动挡汽车”:操作步骤多,规则严格,适合老司机。
- pytest 像“自动挡汽车”:开起来轻松,功能强大,适合新手和高效开发。
区别点 unittest(你学过的) pytest(更强大的新工具) 测试用例写法 必须写一个类,继承 unittest.TestCase
不用类!直接写函数,函数名以 test_
开头就行断言语法 必须用 self.assertEqual(a, b)
这种固定方法直接用 assert a == b
,像写普通 Python 代码一样简单参数化测试 需要安装第三方库(如 ddt
)自带参数化功能,一行代码搞定 管理测试数据 用 setUp()
和tearDown()
初始化/清理数据用 fixture
功能,灵活定义数据,可重复使用运行测试 需手动指定测试文件(如 python -m unittest test.py
)自动发现所有 test_*.py
文件,命令行输入pytest
就行插件和扩展 功能有限,扩展性差 超多插件!比如生成HTML报告、多线程加速测试 错误提示 报错信息简单 错误信息更清晰,直接告诉你哪一行出问题
总结