基于Python语言单元测试框架unittest和pytest的区别

1.用例编写规则:
unittest:提供了testcases测试用例,testsuites测试套件,testfixtures测试固件或者夹具,testloader测试加载器,testrunner测试运行器。必须遵守以下规则:
(1)测试文件必须先导入import unittest
(2)测试类必须继承unittest TestCase
(3)测试方法必须以test开头
pytest:它是Python的第三方测试框架,基于unittest的扩展框架,必须遵守以下规则:
(1)测试文件名必须以test_开头或者_test结尾
(2)测试类必须以Test开头
(3)测试方法必须test开头

2.用例的前置和后置
unittest:
setUp/tearDown 在每个用例之前或者之后运行一次
打开浏览器,加载网页/关闭网页
setUpClass/tearDownClass 在每个类运行之前或之后运行一次
创建数据库连接,创建日志对象/关闭数据库连接,销毁日志对象
setUpModule和tearDownModule 在每个模块之前或者之后执行一次

pytest:
方法级:
setup_method/teardown_method或者setup/teardown 在方法之前和之后
函数级:
setup_function/teardown_down 在函数之前或者之后
类级:
setup_class/teardown_class
模块级:
setup_module/teardown_module

还有:还可以在函数之前加@pytest。fixture()

3.断言
unittest: assertTrue assertEqual assertIn
pytest:assert

4.报告
unittest: htmltestrunner/BStestrunner
pytest:插件 pytest-HTML allure

5.失败重跑
unittest:没有
pytest:pytest-rerunfailures插件

6.数据驱动
unittest:ddt
pytest:@pytest.mark.parametrize装饰器

7.用例分类执行
unittest:默认执行所有,也可以通过testsuite来执行部分用例,或者-k参数。
pytest:@pytest.mark

posted @ 2022-12-26 16:08  不上进的小猫  阅读(54)  评论(0编辑  收藏  举报