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

网站权重为零隧道建设杂志网站

网站权重为零,隧道建设杂志网站,wordpress 正版插件吗,wordpress文章加入标签前言#xff1a;在 pytest 测试框架中#xff0c;注解#xff08;通常称为装饰器#xff09;用于为测试函数、类或方法提供额外的信息或元数据。这些装饰器可以影响测试的执行方式、报告方式以及测试的组织结构。pytest 提供了多种内置的装饰器#xff0c;以及通过插件扩展… 前言在 pytest 测试框架中注解通常称为装饰器用于为测试函数、类或方法提供额外的信息或元数据。这些装饰器可以影响测试的执行方式、报告方式以及测试的组织结构。pytest 提供了多种内置的装饰器以及通过插件扩展的额外装饰器 以下是一些常用的 pytest 装饰器及其用途 1、pytest.mark.parametrize 用于参数化测试允许您为测试函数提供多个参数集pytest 将为每个参数集运行一次测试。示例pytest.mark.parametrize(input,expected, [(1, 2), (3, 4)]) import pytestpytest.mark.parametrize(input,expected, [(1, 2), (3, 4), (5, 6)]) def test_addition(input, expected):assert input 1 expected 在这个例子中test_addition 函数将使用三组不同的参数(1, 2)(3, 4)(5, 6)分别运行三次。  2、pytest.mark.skip 和 pytest.mark.skipif 用于跳过测试。pytest.mark.skip 无条件跳过测试而 pytest.mark.skipif 根据条件跳过测试。示例pytest.mark.skip(reasonNot ready yet) 或 pytest.mark.skipif(sys.version_info (3, 6), reasonPython 3.6 required) import pytest import sys# 无条件跳过 pytest.mark.skip(reasonThis test is not ready yet) def test_not_ready():assert True# 根据条件跳过 pytest.mark.skipif(sys.version_info (3, 6), reasonPython 3.6 required) def test_python_version():assert True 在第一个例子中test_not_ready 函数将被无条件跳过。在第二个例子中如果 Python 版本低于 3.6test_python_version 函数将被跳过。 3、pytest.mark.xfail 和 pytest.mark.xfailif 用于标记预期失败的测试。这些测试将被执行但如果它们失败了则不会被视为错误。示例pytest.mark.xfail(reasonKnown issue) 或 pytest.mark.xfailif(some_condition, reasonCondition not met) 注意pytest.mark.xfailif 不是 pytest 内置的但可以通过类似逻辑实现条件性的 xfail import pytest# 标记预期失败的测试 pytest.mark.xfail(reasonThis is a known issue) def test_xfail():assert False# 可以通过编写一个函数来模拟 pytest.mark.xfailif 的行为 def pytest_xfail_if(condition, reason):def decorator(func):if condition:func pytest.mark.xfail(reasonreason)(func)return funcreturn decorator# 使用模拟的 pytest.mark.xfailif pytest_xfail_if(True, reasonCondition met, expect failure) def test_conditional_xfail():assert False 4、pytest.mark.tryfirst 和 pytest.mark.trylast 用于控制测试的执行顺序尤其是在有多个钩子函数如 setup/teardown 方法时。这些装饰器通常与 pytest 插件中的钩子函数一起使用。 通常与 pytest 插件中的钩子函数一起使用 # 假设有一个 pytest 插件提供了 setup 和 teardown 钩子函数 # 并且我们想要某个测试在这些钩子函数中首先或最后执行 # 注意这里的示例是假设性的因为 pytest.mark.tryfirst 和 pytest.mark.trylast # 通常不直接用于测试函数而是用于钩子函数或插件实现# 假设的 setup 和 teardown 钩子函数实际上需要由 pytest 插件提供 # pytest.hookimpl(tryfirstTrue) # def pytest_setup(): # pass# pytest.hookimpl(trylastTrue) # def pytest_teardown(): # pass# 假设的测试函数实际上不会直接使用 pytest.mark.tryfirst 或 pytest.mark.trylast # pytest.mark.tryfirst # 这通常不会直接用于测试函数 def test_tryfirst():pass# pytest.mark.trylast # 这通常也不会直接用于测试函数 def test_trylast():pass 5、pytest.mark.usefixtures 用于声明测试将使用的 fixture。虽然这不是严格意义上的装饰器因为它不直接修饰函数但它用于指定测试依赖的 fixture。示例pytest.mark.usefixtures(my_fixture) import pytestpytest.fixture def my_fixture():return fixture valuepytest.mark.usefixtures(my_fixture) def test_with_fixture(my_fixture_value):assert my_fixture_value fixture value# 注意在实际使用中pytest 会自动将 fixture 的值注入到测试函数中 # 因此测试函数的参数名应与 fixture 的名称相匹配或使用 pytest.mark.parametrize 来指定参数名。 # 上面的示例中为了说明 pytest.mark.usefixtures 的用法 # 假设了一个名为 my_fixture_value 的参数但在实际代码中应直接使用 my_fixture。 # 正确的用法如下 pytest.mark.usefixtures(my_fixture) def test_with_fixture_correct(my_fixture):assert my_fixture fixture value 在这个例子中test_with_fixture_correct 函数将使用名为 my_fixture 的 fixture。请注意在实际代码中您不需要也不应该在测试函数参数中显式地指定 fixture 的值pytest 会自动将其注入  6、pytest.mark.filterwarnings 用于控制测试期间应如何处理警告。示例pytest.mark.filterwarnings(ignore::DeprecationWarning) import pytest import warningspytest.mark.filterwarnings(ignore::DeprecationWarning) def test_with_warnings():warnings.warn(This is a deprecation warning, DeprecationWarning)assert True 在这个例子中test_with_warnings 函数将忽略 DeprecationWarning 类型的警告。 7、pytest.mark.timeout通过 pytest-timeout 插件提供 用于设置测试的超时时间。如果测试在指定时间内未完成则将被标记为失败。示例pytest.mark.timeout(10)10秒超时 import pytestpytest.mark.timeout(5) # 设置超时时间为5秒 def test_with_timeout():import timetime.sleep(10) # 这将触发超时失败assert True 在这个例子中test_with_timeout 函数将在5秒后超时失败因为 time.sleep(10) 会使测试运行超过指定的超时时间。 8、pytest.mark.flaky通过 pytest-flaky 插件提供 用于标记可能间歇性失败的测试并允许它们在一定数量的重试后通过。示例pytest.mark.flaky(reruns3, reruns_delay2)重试3次每次延迟2秒 import pytestpytest.mark.flaky(reruns3, reruns_delay1) # 设置重试3次每次延迟1秒 def test_flaky():import randomassert random.choice([True, False]) # 这将随机成功或失败 在这个例子中test_flaky 函数将随机成功或失败。如果它失败了pytest-flaky 插件将重试它最多3次每次之间延迟1秒。 9、pytest.mark.order通过 pytest-order 插件提供 用于指定测试的执行顺序。示例pytest.mark.order(1)数字越小执行越早 import pytestpytest.mark.order(1) # 设置执行顺序为1 def test_first():assert Truepytest.mark.order(2) # 设置执行顺序为2 def test_second():assert True 在这个例子中test_first 函数将先于 test_second 函数执行因为它们的执行顺序被分别设置为1和2。 10、自定义标记 您可以使用 pytest.mark.name 语法创建自定义的标记并在测试配置文件中定义它们的行为。示例pytest.mark.my_custom_mark然后在 pytest.ini 或 pytest.mark 文件中定义它 import pytest# 在 pytest.ini 或 pytest.mark 文件中定义自定义标记 # [pytest] # markers # my_custom_mark: This is a custom markerpytest.mark.my_custom_mark # 使用自定义标记 def test_with_custom_mark():assert True 我们定义了一个名为 my_custom_mark 的自定义标记并在 test_with_custom_mark 函数中使用了它。请注意您需要在 pytest 的配置文件中如 pytest.ini 或 pytest.mark定义这个自定义标记以便 pytest 能够识别它。 请注意上述列表中的一些装饰器如 pytest.mark.timeout 和 pytest.mark.flaky是通过 pytest 插件提供的因此在使用它们之前需要确保已安装相应的插件。 在使用这些装饰器时请确保您了解它们如何影响测试的执行和报告以及它们是否适用于您的测试场景。
http://www.hkea.cn/news/14576031/

相关文章:

  • 新闻媒体网站开发文档调用wordpress分类名称
  • 如何逐步提升网站权重wordpress系列文章
  • 昆山做网站公司哪家好小程序需要租服务器吗
  • 做运营常用的网站tp 网站建设源码
  • dede网站维护暂时关闭百度搜索引擎下载
  • asp源码打开网站做网站找个人
  • 自己怎么做网站空间wordpress jpress
  • 成都个人建网站多用户小程序系统开发
  • 生物科技网站建设方案网站开发公司联系电话
  • 网站增加用户体验网站建设推广费怎么做账
  • 怎么做网站的排名优化昆明网站建设公司排行
  • 沈阳做企业网站视频模板网站推荐
  • 做网站报价出名的百度seo快速
  • 阿里云有网站建设吗域名是指什么
  • wordpress 顶部图像潍坊网站优化公司
  • 建设部网站技术负责人业绩表有引导页的网站
  • 网页设计茶叶网站建设网络工程师做什么的
  • 福建富通建设有限公司网站推广软文代写
  • 甘孜建设网站首页wordpress未验证邮箱用户
  • 哪个网站教人做美食做网站买了域名之后
  • 工程建设业绩公示网站app 小程序
  • 网站开发与实现文献综述wordpress环境系统
  • 天河做网站设计城乡与住房建设部网站首页
  • 南京好的网站设计公司汽车嵌入式软件开发
  • 手机网站模板大全淘宝客 网站无备案
  • 制作网站开发项目的方案书泉州网站建设推广服务
  • 简述网站建设优劣的评价标准市场营销计划书模板
  • 云南网站制作价格创业平台的重要性
  • 企业seo整站优化方案注册一家公司需要多少费用
  • discuz修改网站标题网站制作案例价格