python-pytest学习(十五)-fixture详解
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-pytest学习(十五)-fixture详解,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1653字,纯文字阅读大概需要3分钟。
内容图文
![python-pytest学习(十五)-fixture详解](/upload/InfoBanner/zyjiaocheng/633/1c68dfa2600b41fa9230cee2073e2447.jpg)
一、前言
fixture是pytest的核心功能,也是亮点功能,熟练掌握fixture的使用方法,pytest用起来才会得心应手!
二、fixture简介
fixture的目的是提供一个固定基线,在该基线上测试可以可靠地和重复地执行。fixture提供了区别于传统单元测试(setup/teardown)有显著改进:
(1)有独立的命名,并通过声明它们从测试函数、模块、类或整个项目中的使用来激活;
(2)按模块化的方式实现,每个fixture都可以相互调用;
(3)fixture的范围从简单的单元扩展到复杂的功能测试,允许根据配置和组件选项对fixture和测试用例进行参数化,或者跨函数function,类class,模块module或整个测试会话session范围。
三、fixture作为参数传入
定义fixture跟定义普通函数差不多,唯一区别就是在函数上加个装饰器@pytest.fixture(),fixture命名不要用test_开头,跟用例区分开。用例才是test_开头的命名。
fixture是可以有返回值的,如果没return默认返回None。用例调用fixture的返回值,直接就是吧fixture的函数名称当成变量名称,如下案例
import pytest @pytest.fixture() def user(): print("获取用户名") a = "admin" return a def test_1(user): assert user == "admin" if __name__ == "__main__": pytest.main(["-s","test_fixture1.py"])
运行结果:
四、error和failed区别
测试结果一般有三种:passed、failed、error。(skip的用例除外)
如果在test_用例里面断言失败,那就是failed
import pytest @pytest.fixture() def user(): print("获取用户名") a = "admin" return a def test_1(user): assert user == "admin111" if __name__=="__main__": pytest.main(["-s","test_fixture2.py"])
如果在fixture里面断言失败了,那就是error
import pytest @pytest.fixture() def user(): print("获取用户名") a = "admin" assert a == "admin123" return a def test_1(user): assert user=="admin" if __name__=="__main__": pytest.main(["-s","test_fixture3.py"])
参考文章:https://www.jianshu.com/p/8b21deb27262
内容总结
以上是互联网集市为您收集整理的python-pytest学习(十五)-fixture详解全部内容,希望文章能够帮你解决python-pytest学习(十五)-fixture详解所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。