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秒