python中pytest和unittest区别是啥?六点告诉你
Admin 2021-06-02 群英技术资讯 1796 次浏览
我们在使用python做接口测试的时候,会需要python的单元测试框架,在python中单元测试框架很多unittest、pytest、nose等,这篇文章就给介绍一下python的单元测试框中pytest和unittest区别是什么,接下来我们一起看看吧。
(1)unittest提供了test cases、test suites、test fixtures、test runner相关的类,让测试更加明确、方便、可控。使用unittest编写用例,必须遵守以下规则:
(2)pytest是python的第三方测试框架,是基于unittest的扩展框架,比unittest更简洁,更高效。使用pytest编写用例,必须遵守以下规则:
总结: pytest可以执行unittest风格的测试用例,无须修改unittest用例的任何代码,有较好的兼容性。 pytest插件丰富,比如flask插件,可用于用例出错重跑;还有xdist插件,可用于设备并行执行。
(1)unittest提供了setUp/tearDown,每个用例运行前、结束后运行一次。setUpClass和tearDownClass,用例执行前、结束后,只运行一次。
(2)pytest提供了模块级、函数级、类级、方法级的setup/teardown,比unittest的setUp/tearDown更灵活。
(1)unittest提供了assertEqual、assertIn、assertTrue、assertFalse。
(2)pytest直接使用assert 表达式。
(1)unittest使用HTMLTestRunnerNew库。
(2)pytest有pytest-HTML、allure插件。
(1)unittest无此功能。
(2)pytest支持用例执行失败重跑,pytest-rerunfailures插件。
(1)unittest需依赖ddt库,
(2)pytest直接使用@pytest.mark.parametrize装饰器。
unittest
class DefaultTestCase(unittest.TestCase):
def setUp(self):
print "Start to run"
def tearDown(self):
print "Close"
class TestDefaultTestCase(DefaultTestCase):
def test_print_b(self):
print 'b'
def test_print_a(self):
print 'a'
if __name__ == '__main__':
unittest.main()
运行结果:

pytest
import os
import pytest
# pytest是python的单元测试框架
def func(x):
return x + 1
def test_a():
print("____test_a____")
assert func(2) == 5
def test_b():
print("____test_b____")
assert func(2) == 3
if __name__ == '__main__':
pytest.main(["-s","pytest1.py"])
上文从编写规则、参数、断言、示例等方面比对了pytest和unittest,现在大家对pytest和unittest区别应该都了解了吧,希望大家阅读完这篇文章能有所收获。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要给大家分享Python多继承的内容,下文示例对新手学习Python多继承具有一定的借鉴价值,感兴趣的朋友可以参考一下,希望大家阅读完这篇文章能有所收获,下面我们一起来学习一下吧。
如果想对python脚本传参数,python中对应的argc,argv(c语言的命令行参数)是什么呢?需要模块:sys参数个数:len(sys.argv)脚本名: sys.argv[0]参数1: sys.argv[1]参数2: sys.argv[2]test.py1import sys2print "脚本名:",sys.argv[0]
这篇文章主要介绍了Python异常 ValueError的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
这篇文章主要介绍了python数据结构之面向对象,在python数据结构的上一章节我们讲述了python的输入输出控制异常,希望大家重点掌握输出和控制,这些都是比较简单的啦,多看看就好了,接下来我们要讲的是python面向对象,需要的朋友可以参考一下
这篇文章给大家分享的是有关opencv图形绘制的内容,opencv是一个强大的图像处理和计算机视觉库,我们使用python opencv可以绘制圆形,矩形,线段等多种常用图形。下面我们就一起来看看怎么实现opencv图形绘制吧。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008