当前位置: 首页 > news >正文

摄影网站开发背景怎么写网站怎样自己做推广

摄影网站开发背景怎么写,网站怎样自己做推广,网站建设企业 熊掌号,镇江润州区建设局网站导读 fixture 是 pytest 中一个非常重要的模块,可以让代码更加简洁。 fixture 的 autouse 为 True 可以自动化加载 fixture。 如果不想每条用例执行前都运行初始化方法(可能多个fixture)怎么办?可不可以只运行一次初始化方法? 答&#xf…

导读

fixture 是 pytest 中一个非常重要的模块,可以让代码更加简洁。

fixture 的 autouse 为 True 可以自动化加载 fixture

如果不想每条用例执行前都运行初始化方法(可能多个fixture)怎么办?可不可以只运行一次初始化方法?

答:可以使用 scope 。

举例

要先创建一个文件:conftest.py, 编写代码:

import pytestdata = {}@pytest.fixture(scope="session")
def add():"""相加"""return 5 + 8@pytest.fixture(scope="session")
def multiply():"""相乘"""return 5 * 8@pytest.fixture(scope="session", autouse=True)
def init_data():"""初始化数据"""print(f"start init_data: {data}")data["a"] = 5data["b"] = 8data["c"] = 13data["d"] = 40data["e"] = 53data["f"] = 520@pytest.fixture(scope="session", autouse=True)
def init_data2(add, multiply):"""初始化数据"""print(f"start init_data2: {data}")data["e"] = add * multiplydata["f"] = add + multiply

这里注意:init_data2 引用了 add 和 multiply 这两个fixture,所以这两个 fixture 都需要加上:

@pytest.fixture(scope="session")

如果不加上,就会报错:ScopeMismatch: You tried to access the function scoped fixture add with a session scoped request object

这是因为 init_data2 的作用域是 session,而  add 和 multiply 的作用域是 function。所以要在同级上才能使用。

新建测试文件:test_fixtures_scope.py, 编写测试代码:

from conftest import datadef test_first_fixture():# Actprint(f"a={data['a']}")print(f"b={data['b']}")print(f"a + b={data['c']}")print(f"a * b={data['d']}")# Assertassert data['c'] == data['a'] + data['b']def test_second_fixture():print(f"add * multiply={data['e']}")print(f"add + multiply={data['f']}")# Assertassert data['e'] != data['f']

测试

正确使用:

$ pytest -sv test_fixtures_scope.py
================================== test session starts ===================================
platform darwin -- Python 3.12.0, pytest-8.2.2, pluggy-1.5.0 -- /Users/hope/PythonVirtualenv/pytest-sample/bin/python
cachedir: .pytest_cache
rootdir: /Users/hope/PycharmProjects/pytest-sample
collected 2 itemstest_fixtures_scope.py::test_first_fixture start init_data: {}
start init_data2: {'a': 5, 'b': 8, 'c': 13, 'd': 40, 'e': 53, 'f': 520}
a=5
b=8
a + b=13
a * b=40
PASSED
test_fixtures_scope.py::test_second_fixture add * multiply=520
add + multiply=53
PASSED=================================== 2 passed in 0.01s ====================================

可以看到 这行日志只运行了一次:

start init_data: {}
start init_data2: {'a': 5, 'b': 8, 'c': 13, 'd': 40, 'e': 53, 'f': 520}

当两个fixture不在同一作用域:

$ pytest -sv test_fixtures_scope.py
================================== test session starts ===================================
platform darwin -- Python 3.12.0, pytest-8.2.2, pluggy-1.5.0 -- /Users/hope/PythonVirtualenv/pytest-sample/bin/python
cachedir: .pytest_cache
rootdir: /Users/hope/PycharmProjects/pytest-sample
collected 2 itemstest_fixtures_scope.py::test_first_fixture ERROR
test_fixtures_scope.py::test_second_fixture ERROR========================================= ERRORS =========================================
__________________________ ERROR at setup of test_first_fixture __________________________
ScopeMismatch: You tried to access the function scoped fixture add with a session scoped request object. Requesting fixture stack:
conftest.py:18:  def init_data(add, multiply)
Requested fixture:
conftest.py:6:  def add()
_________________________ ERROR at setup of test_second_fixture __________________________
ScopeMismatch: You tried to access the function scoped fixture add with a session scoped request object. Requesting fixture stack:
conftest.py:18:  def init_data(add, multiply)
Requested fixture:
conftest.py:6:  def add()
================================ short test summary info =================================
ERROR test_fixtures_scope.py::test_first_fixture - Failed: ScopeMismatch: You tried to access the function scoped fixture add with a ses...
ERROR test_fixtures_scope.py::test_second_fixture - Failed: ScopeMismatch: You tried to access the function scoped fixture add with a ses...
=================================== 2 errors in 0.02s ====================================

总结

fixtures 会在测试一开始的时候创建,会在定义的作用域销毁。

  • function: 默认的 scope,在测试用例(以test开头的方法)结束时销毁。

  • class: 在一个class类中最后一个测试用例结束时销毁。

  • module: 在一个模块(也就是一个py文件)中最后一个测试用例结束时销毁。

  • package: 在一个目录的最后一个测试用例结束时销毁。

  • session:所有测试用例都运行结束时销毁。


每日踩一坑,生活更轻松。

本期分享就到这里啦,祝君在测开之路上越走越顺,越走越远。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

http://www.yayakq.cn/news/114502/

相关文章:

  • 海南省住建设厅网站报监中国疫苗接种率
  • wordpress2018主题河源市seo点击排名软件价格
  • 电子商务网站建设服务外包塘厦镇网站建设
  • 广州网站设计实力乐云seo24小时国内新闻大事
  • 学校网站建设框架淮北论坛网
  • 男女做性哪个的小视频网站中国航发网上采购平台
  • 网站上线倒计时页面有限责任公司破产债务怎么处理
  • 哪些网站做面试题响应式网站管理系统
  • 网站地图怎么做一键导航企业网站的常见服务是什么
  • 广东企业微信网站开发厂房网
  • 利用博客做网站排名莆田网站建设维护
  • tornado 网站开发做软件开发有前途吗
  • 温州市建设工程招投标网站项目申报
  • 理财公司网站建设方案网页版微信二维码已失效请重新扫码登录
  • 做pc端网站机构短网址赚钱平台
  • 网站策划图建站流程新手搭建网站第一步
  • 淘宝网站建设的目标是什么网站都有哪些
  • 做网站要霸屏吗做网站之前要先购买服务器吗
  • 地方生活门户网站名称手机网站主页推荐
  • 手机在线制作网站怎么搭建网站视频教程
  • 做网站课程报告标志设计分析
  • 免费网站模板之家建设网站需要些什么手续
  • 做网站能赚钱吗 知乎页面跳转是什么意思
  • 兰州启点网站建设网页服务器一年多少钱
  • 建站公司选址dede企业网站模板下载
  • 帮别人做网站犯法吗网站建设用什么软件
  • 做网站tt0546深圳公司贷款
  • 织梦做的网站如何修改sem代运营推广公司
  • 诸暨东莞网站建设公司wordpress 关闭邮件
  • 深圳杰恩创意设计有限公司网站网站建设需要公司