pytest和unittest对比

Posted yzwdcjs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytest和unittest对比相关的知识,希望对你有一定的参考价值。

 一、用例编写规则

1.在使用unittest编写测试用例的时候,需要遵循先创建testclass,测试类继承unittest.TestCase的固定格式。

pytest不需要,框架规范更自由,可以直接写def test_XXX()即可

(1)测试文件名必须以“test_”开头或者"_test"结尾(如:test_ab.py)

(2)测试方法必须以“test_”开头。

(3)测试类命名以"Test"开头。

       

二、用例分类执行

1、unittest默认执行全部用例,也可以通过加载testsuit,执行部分用例。

2、pytest可以通过@pytest.mark来标记类和方法,pytest.main加入参数("-m")可以只运行标记的类和方法。

 

三、用例前置和后置

1.unittest提供了setUp/tearDown,只能针对所有用例。

2.pytest中的fixture显然更加灵活。

可以任意自定义方法函数,只要加上@pytest.fixture()这个装饰器,那么被装饰的方法就可以被使用

 

 

四、参数化

 

1、unittest需依赖ddt库,

 

2、pytest直接使用@pytest.mark.parametrize装饰器。

 

 

五、断言

1.unittest断言需要记很多断言格式(assertEqual、assertIn、assertTrue、assertFalse)

2.pytest只有assert一个表达式,用起来比较方便

 

六、报告

1.unittest使用htmlTestRunnerNew库。

2.pytest有pytest-HTML、allure插件。

 

七、失败重跑

1、unittest无此功能。

2、pytest支持用例执行失败重跑,pytest-rerunfailures插件。

主要web端可能有元素没在规定时间内加载出来的原因导致用例失败,使用重跑可以加大报告的可信度。

 

 

 

 

 

 

 

以上是关于pytest和unittest对比的主要内容,如果未能解决你的问题,请参考以下文章

pytest 框架与 unittest 框架的对比

软件测试框架之unittest与pytest的对比-

pytest 框架与 unittest 框架的对比

Python测试框架之unittest和pytest

Python 自动化测试框架unittest与pytest的区别

Python- unittest 单元测试 (测试框架)和pytest 的区别