一、用例编写规则
1、unittest提供了test_cases、test_suites、test_fixtures、test_runner相关的类,让测试更加明确、方便、可控,使用unittest编写用例,必须遵守以下规则:
(1)、测试文件必须先 import unittest
(2)、测试类必须继承 unittest TestCase
(3)、测试方法必须以 test_开头
(4)、测试类必须要有 unittest.main() 方法
2、pytest 是python的第三方测试框架,是基于unittest 的扩展框架,比 unittest 更简洁、更高效。使用 pytest 编写用例,必须遵守以下规则:
(1)、测试文件必须以 test_ 开头或者 _test 结尾
(2)、测试方法必须以 test_ 开头
(3)、测试类命名以 Test 开头
二、用例前置和后置
1、unittest 提供 setup / tearDown,每个用例运行前 / 结束后运行一次,setupclass 和 tearDownclass,用例执行前、结束后,只执行一次
2、pytest 提供了模块级、函数级、类级、方法级的 setup / teardown,比 unittest 的 setup / tearDown 更灵活
三、报告
1、unittest 使用 HTMLTestRunnerNew 库
2、pytest 有 pytest-HTML,allure 插件
四、断言
1、unittest 提供了 assertEqual ,assertln , assertTrue ,assertFalse
2、pytest 直接使用 assert 表达式
五、失败重跑
1、unittest 无此功能
2、pytest 支持用例执行失败重跑,pytest-rerunfailures 插件
六、参数化
1、unittest 需依赖 ddt 库
2、pytest 直接使用 @pytest.mark.parametrize 插件
七、用例分类执行
1、unittest 默认执行全部用例,也能通过加载 testsuit 执行部分用例
2、pytest 可以通过 @pytest.mark 来标记类和方法,pytest.main加入参数(-m)可以只运行标记的类和方法
Original: https://blog.csdn.net/weixin_52022790/article/details/126614159
Author: jjucki
Title: unittest 和 pytest 的区别
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/774383/
转载文章受原作者版权保护。转载请注明原作者出处!