pytest
pytest简介:
pytest是python的第三方单元测试框架,比自带的unittest更简洁和高效,同时兼容unittest框架
pytest测试用例编写规则:
1、测试文件以test_开头(以_test结尾也可以)
2、测试类以Test开头,并且不能带有__init__方法
3、测试函数以test_开头
4、断言必须使用assert
也可以直接写测试方法
Pytest.main() 会自动把当前模块下符合要求的用例以及子模块下符合要求的用例进行执行
Pytest中的fixtrue
可以把fixture看做是资源,在你的测试用例执行之前需要去配置这些资源,执行完后需要去释放资源。类似unittest中的setup和teardown功能。
举例一:
这是运行结果:
举例二:
Pytest中fixture的参数介绍:
autouse:在一个session内所有的test都会自动调用当前的fixture,默认为false
Name:设置fixture的名称,不设置默认为装饰函数的名称
Scope:作用范围
设置范围后,会根据设置的范围去触发执行。范围可选值:function:每个方法(函数)都会执行一次。(默认)class:每个类都会执行一次。类中有多个方法调用,只在第一个方法调用时执行。module:一个.py文件执行一次。一个.py文件可能包含多个类和方法。package/session:多个文件调用一次,可以跨.py文件
Scope = function是默认效果
结果为:
Scope = class的效果
结果为:
Scope = module的效果
结果为:
Params:传入参数,接收一个列表,列表中每个数据都作为用例的输入
Ids的作用:测试字符串id的列表,每个测试字符串id对应于params,默认为参数值
conftest.py文件应用:pytest中的fixture是pytest用于将测试前后进行预备,清理工作的代码分离出核心测试逻辑的一种机制。但是我们更加希望的是在一个测试套件中,能够共享fixture的机制,这样一个测试套件里面的所有测试点都能够共同使用。在pytest中可以通过conftest.py来共享fixture,如果希望多个测试文件共同使用一个fixture时候,可以在该目录下创建conftest.py文件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现