首页 > 其他分享 >Pytest常用装饰器

Pytest常用装饰器

时间:2024-08-29 17:05:34浏览次数:11  
标签:常用 Pytest fixture pytest mark 测试用例 data 装饰 def

在 Pytest 中,有一些常用的装饰器,它们可以帮助你更好地组织和管理测试用例。以下是一些常见的 Pytest 装饰器:

  1. @pytest.mark.parametrize:用于参数化测试用例。它允许你为一个测试函数提供多组参数,从而可以用不同的输入值来测试同一个功能。
    示例:
    `import pytest

    @pytest.mark.parametrize("input_value, expected_result", [
    (5, 10),
    (3, 6),
    (8, 16)
    ])
    def test_double(input_value, expected_result):
    assert input_value * 2 == expected_result`

@pytest.mark.skip:用于跳过某个测试用例。可以指定一个条件,当条件满足时,该测试用例将被跳过。
示例:

     import pytest

     @pytest.mark.skip(reason="This test is currently not working")
     def test_function():
         pass

@pytest.mark.xfail:用于标记一个预期会失败的测试用例。如果该测试用例实际执行失败,将被标记为 xfail(预期失败);如果实际执行通过,将被标记为 unexpected pass(意外通过)。
示例:

     import pytest

     @pytest.mark.xfail
     def test_function():
         assert False

@pytest.fixture:用于定义一个 fixture,它可以在测试用例执行之前或之后进行一些设置和清理工作。Fixture 可以被多个测试用例共享,提高测试代码的可维护性和可重用性。
示例:

     import pytest

     @pytest.fixture
     def setup_data():
         data = [1, 2, 3]
         return data

     def test_function(setup_data):
         assert len(setup_data) == 3

@pytest.mark.usefixtures:用于在测试类或测试函数上应用一个或多个 fixture。它可以让你在不直接传入 fixture 参数的情况下使用 fixture。
示例:

     import pytest

     @pytest.fixture
     def setup_data():
         data = [1, 2, 3]
         return data

     @pytest.mark.usefixtures("setup_data")
     def test_function():
         # 这里可以直接使用 setup_data fixture
         pass

这些装饰器可以大大提高你的测试效率和代码的可读性。在使用 Pytest 进行测试时,可以根据具体的需求选择合适的装饰器来组织和管理你的测试用例。

标签:常用,Pytest,fixture,pytest,mark,测试用例,data,装饰,def
From: https://www.cnblogs.com/bugoobird/p/18387059

相关文章

  • VSCode常用插件
    VsCode插件市场地址https://marketplace.visualstudio.comVsCode拓展插件安装快捷键:Ctrl+Shift+X进入拓展面板,到应用商店文本框中搜索拓展。 适用于VSCode的中文(简体)语言包拓展名称:Chinese(Simplified)LanguagePackforVisualStudioCode插件市场地址:https://mar......
  • pygame封装常用控件,第二日,有滑块的文本显示域
    #coding=utf-8importos,sys,re,timeimportpygameimportrandomfromwin32apiimportGetSystemMetricsfromtkinterimportmessageboxpygame.init()pygame.display.set_caption("我的控件")percent=0.6screen_width=GetSystemMetrics(0)screen_heig......
  • Python 中常用的人工智能库和工具
    在Python中,有许多强大的人工智能库和工具,它们为开发各种人工智能应用提供了有力的支持。以下是一些常用的人工智能库和工具介绍:一、机器学习库Scikit-learnScikit-learn是一个广泛应用于机器学习的Python库。它提供了各种经典的机器学习算法,包括分类、回归、聚类等......
  • 黑马JavaWeb开发笔记09——ElementUI代码引入教程、Element常用组件使用(Table, Pagina
    文章目录前言ElementUI1.快速入门(代码引入教程)2.组件:Table表格3.组件:Pagination分页4.组件:Dialog对话框5.组件:Form表单总结前言本篇文章是2023年最新黑马JavaWeb开发笔记09:ElementUI代码进入教程、常用组件使用的总结,帮助需要学习Web开发的朋友温故而知新。El......
  • Day50.head内常用标签
    1.head内常用标签_titile标签_style标签_body标签用法2.head内常用标签_script标签内用来写js代码3.head内常用标签_script标签导入其他js文件显示4.head内常用标签_link标签导入其他css文件显示5.head内常用标签_meta标签定义两秒后跳转到指定标签6.head内常用标签_告诉IE以最......
  • Android 常用的性能分析工具详解:GPU呈现模式
    此篇将重点介绍几种常用的Android性能分析工具:一、Logcat日志选取Tag=ActivityManager,可以粗略地知道界面Displaying的时间消耗。当我们打开一个Activity的时候,log会打印一串log如下:I/ActivityManager﹕Displayedxxx.xxx.xxx/TestActivity:+1s272ms(total+3s843ms)第一......
  • 28:函数闭包与装饰器
    l=[1,3]l.__iter__()#迭代器#装饰器:本质就是函数,功能是为其他函数添加附加功能#原则:#1.不修改被修饰函数的源代码#2.不修改被修饰函数的调用方式#装饰器的知识储备#装饰器=高阶函数+函数嵌套+闭包#adefcal(l):res=0foriinl:res+=ireturnr......
  • Redis几种常用数据类型的数据结构
    以下是redis-7版本以下适用stringint编码:当字符串长度小于等于12字节并且字符串可以表示为整数时,Redis会使用int编码。这样可以节省内存,并且在执行一些命令时可以直接进行数值计算。embstr编码:当字符串长度小于等于39字节时,Redis会使用embstr编码。这种编码方式会将......
  • vue3 常用的几种组件通讯方式
    vue3常用的几种组件通讯方式,大致如下Props/EmitPinia事件总线(mitt)Provide/Inject浏览器本地存储 1.Props/Emit注释:prop属性名称/方法名称的格式,采用 camelCase 与 kebab-case。 1.1props(1)上游组件设置 prop 值(通过v-bind或冒号) 或者 (2)下游......
  • C++中常用宏
    C++中会常使用到宏来进行条件编译,或设置变量1、__cplusplus:区分当前代码为C++或C//定义只在C++中才进行extern"C"的操作#ifdef__cplusplusextern"C"{#endifvoidfun(inta,intb);#ifdef__cplusplus}#endif2、区分操作系统:_WIN32:Windows操作系统,不区......