一、前言
本文主要记录pytest框架在使用过程中的注意事项,部分是参考他人文章,部分为实际工作中遇到的问题记录,方便后续查看。
官方文档链接:https://docs.pytest.org/en/latest/contents.html
二、pytest框架使用注意事项
1、不要试图在用例类中使用init构造方法,pytest并不支持这种方式;前置处理可以使用setup或者fixture
2、不要试图在setup中传入参数,setup并不支持传参,如果需要传参,可以考虑fixture
3、fixtrue也可以在用例类内使用
4、不要试图在参数param 中调用带有依赖的fixture,pytest.mark.paramatrize会优先于fixture先执行
5、参数化,还可以在类或模块上使用参数化标记,参考如下
6、pytest可以兼容unittest,但是部分情况下无法兼容
(1).当使用pytest的参数化paramatrize,不能做到和unittest兼容;
pytest的参数化相当于unittest中的ddt实现数据驱动,ddt模块不能和fixtrue共用,所以要换用pytest的参数化来实现unittest的ddt;
pytest的参数化会和unittest冲突,调整方式是要改成pytest参数化,不要继承unittest.TestCase
(2).当使用夹具fixture,(autouse=True可以),也不能和unittest兼容
(3).钩子Custom_hooks
参考文链接:https://blog.csdn.net/qq_32722729/article/details/102919545
三、pytest+allure
pytest.main(['-vs', 'case/test_home_case.py', '--alluredir', './report/report_temp','--clean-alluredir'])
os.system('allure generate ./report/report_temp -o ./report/report --clean') # 保存报告
# os.system('allure open report') # 打开报告
os.system('allure serve ./report/report_temp') # 立即打开报告(程序会持续执行)