Openapi pytest单元测试
一、注意事项:
1、支持python2.7版本
2、环境变量:DJANGO_SETTINGS_MODULE=openapi.settings在运行/调试中进行配置。
3、if __name__ == '__main__':
pytest.main(['-vs'])
pytest.main(['--html=report.html', '--self-contained-html'])
pytest.main(['--cov', '--cov-report=xml'])
执行生成report.html,此文件就是测试人员需要的单测报告。
执行生成coverage.xml,此文件就是测试人员需要的覆盖率报告。
4、依赖的包已打包:my_env
5、
①文件名的命名注意事项:
②类名和方法名的命名注意事项
二、pytest基本使用说明
1、创建test_开头的文件,测试文件以 test_xx.py 命名需要以 test_开头(或_test 结尾)
2、若是新建类,测试类需要以 Test_开头,并且不能带有 init 方法(Test开头的类,这个类也叫做测试套件,类下面的是函数才是测试用例)
3、测试用例(方法)需要以 test_开头
4、判断用例结果是否满足预期使用assert断言
5、使用mocker.patch.object方法进行数据的mock使用,
通过mock.patch.object的方式,第一个参数必须是mock的对象
通过mock.patch的方式第一个参数必须是模拟mock对象的完整路径
6、其余使用方式可参考网上使用说明
三、使用示例(develop_20231130分支)
下面以快照list的EcsSnapshotListProcor为例进行说明,该方法中主要为通过调用下层(yacos或工单、惠通)返回结果,判断结果是否正确。
代码结构说明:在test目录下新建test_snapshot目录,进行快照相关用例编写,相关文件说明:
test_snapshot.py 单元测试用例类
mock_snapshot_data.py 单元测试用例的mock数据文件
product_html.py 单元测试启动的主函数文件
report.html 单元测试生成的测试报告
1.1、分析EcsSnapshotListProcor:
1.2、EcsSnapshotListProcor的单元测试
1.3单元测试用例的mock数据
1.4单元测试的主函数