unittest与pytest的区别

1、pytest可以根据标签自动设别测试用例

2、断言简洁 assert+表达式,而unittest需调用内部函数,如assertEqual

3、pytest可设置会话级、模块级、类级、函数级的fixtures,即用yield分割:数据准备和数据清理工作(前置后置)

4、pytest有多种插件可以集成,如reruns重运行、allure测试报告的集成等。

5、pytest测试用例可以写成独立函数,而unittest中必须写在类中,且类继承unittest的TestCase (class testHttp(unittest.TestCase))

备注:

(1)fixture的参数中,有scope作用域
(2)function:每个test都运行,默认是function的scope。即unittest的Setup和tearDown
(3)class:每个class的所有test只运行一次,即unittest的setupClass和teardownClass
(4)module:每个module的所有test只运行一次 (区别是有多个类或者测试用例函数时
(5)session:每个session只运行一次(如连接数据库操作)

重运行命令:pytest -m smoke --reruns 2 --reruns-delay 5   -s(输出日志)   失败的用例可以运行两次,第一次和第二次的间隔为5秒 

原文地址:https://www.cnblogs.com/guotang/p/12703511.html