【pytest学习7】fixture的重命名
通过前面学习fixture可以正常的代替setup和teardown,我们在后期框架中的文件名过多,或者函数名过多,有时会和fixture名字进行重名,或者fixture调用容易出错。fixture也可以进行重新自己更改自己的名称
fixture重命名
在fixture源码中我们可以通过修改name的参数来更改fixture的名称。默认是我们定义def的名称
def fixture( # noqa: F811 fixture_function: Optional[_FixtureFunction] = None, *, scope: "Union[_Scope, Callable[[str, Config], _Scope]]" = "function", params: Optional[Iterable[object]] = None, autouse: bool = False, ids: Optional[ Union[ Iterable[Union[None, str, float, int, bool]], Callable[[Any], Optional[object]], ] ] = None, name: Optional[str] = None
说这么多,大家也不知道说的啥,举个例子吧,这里我把函数名为login的fixture通过配置参数name=“anjing_login”
# test__01.py import pytest @pytest.fixture(name='anjing_login') def login(): print('输入账号,输入密码') print('完成登录功能!!!!') yield print('---退出登录---') class Test_Login: def test_01(self, anjing_login): print('------用例01------') def test_02(self): print('------用例02------') def test_03(self,anjing_login): print('------用例03------') if __name__ == '__main__': pytest.main(['-s', 'test__01.py'])
这里发现我们通过使用anjing_login 就直接调用了更改名前的login。
注意:当我们进行对fixture重命名后,如果再次调用以前的名字就会出现报错
import pytest @pytest.fixture(name='anjing_login') def login(): print('输入账号,输入密码') print('完成登录功能!!!!') yield print('---退出登录---') class Test_Login: def test_01(self, login): print('------用例01------') def test_02(self): print('------用例02------') def test_03(self, anjing_login): print('------用例03------') if __name__ == '__main__': pytest.main(['-s', 'test__01.py'])
这里把用例1继续调用以前的名称,执行后,就会通过报错。所以小伙伴要特别注意,如果修改了name名称后,就需要调用重命名的名称。
声明 欢迎转载,但请保留文章原始出处:) 博客园:https://www.cnblogs.com/chenxiaomeng/
如出现转载未声明 将追究法律责任~谢谢合作
分类:
python-pytest
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具