unittest&pytest区别对比

导包:

unittest:python自带,直接import unittest导包即可

pytest:需要pip安装后import导入

类名命名方式:
unittest:随意,但是必须继承于unittest.TestCase

pytest:需要以Test开头,不需要继承

内置方法:
unittest:setUpClass、tearDownClass方法前需要有@classmethod解释器,setUp、tearDown用法与pytest一样,只是写法不同

pytest:可直接使用,不需要解释器,方法名与unittest不同

用例命名方式:
unittest:都以test_开头,但是执行顺序是按照 ASCII 升序排列, 0-9,A-Z,a-z

pytest:都以test_开头,按用例顺序执行

主方法执行方式不同:
unittest:unittest.main()

pytest:pytest.main()

断言写法不同:

unittest :

assertEqual(a, b) # 判断a和b是否相等

assertNotEqual(a, b) # 判断a不等于b

assertTrue(a) # 判断a是否为Ture

assertFalse(a) #判断a是否为False

assertIn(a, b) # a 包含在b里面

asserNotIn(a, b) # a 不包含在b里面      等等等等等等等.....

pytest :只需要用assert 来断言就行,assert 后面加需要断言的条件就可以了,例如:assert a = = b # 判断a是否等于b

生成报告方式:

unittest:通过HTMLTestRunner生成

pytest:通过pytest-html生成html格式报告、通过allure生成方案

pytest官方文档:

https://docs.pytest.org/en/6.2.x/contents.html

unittest官方文档:

https://docs.python.org/3/library/unittest.html

pytest参考:

https://blog.csdn.net/weixin_50464533/article/details/128854177

unittest参考:

https://blog.csdn.net/aijaijgnaw/article/details/125165616

posted @ 2023-04-26 16:47  Wu-S  阅读(108)  评论(0)    收藏  举报