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

菜单网站图片素材在线做网站图标

菜单网站图片素材,在线做网站图标,永济做网站单价,贵州省建设项目验收备案网站文章目录 1. 引言2. 基础概念2.1 Fixture2.2 参数化 3. 代码实例3.1 基础设置3.2 测试用例示例示例 1#xff1a;基础的间接参数化示例 2#xff1a;通过 request 获取参数值示例 3#xff1a;多参数组合测试示例 4#xff1a;部分间接参数化 4. 最佳实践5. 总结参考资料 1… 文章目录 1. 引言2. 基础概念2.1 Fixture2.2 参数化 3. 代码实例3.1 基础设置3.2 测试用例示例示例 1基础的间接参数化示例 2通过 request 获取参数值示例 3多参数组合测试示例 4部分间接参数化 4. 最佳实践5. 总结参考资料 1. 引言 在进行单元测试时我们经常需要使用不同的参数来测试同一个功能。Pytest 提供了强大的参数化功能并且可以与 fixture 结合使用使得测试代码更加灵活和可维护。本文将深入探讨 pytest 中参数化和 fixture 的高级用法。 2. 基础概念 2.1 Fixture Fixture 是 pytest 中的一个核心概念它提供了一种方式来为测试提供可复用的依赖。Fixture 可以 提供测试数据设置测试环境处理测试资源的创建和清理 2.2 参数化 参数化允许我们使用不同的参数多次运行同一个测试。pytest 提供了两种主要的参数化方式 直接参数化参数直接传递给测试函数间接参数化参数通过 fixture 传递给测试函数 3. 代码实例 3.1 基础设置 首先我们需要创建两个文件conftest.py 和 test_fixture_indirect.py。 # conftest.py import pytestpytest.fixture(scopemodule) def fixture_indirect(request):print(ffixture_indirect, request: {request})print(ffixture_indirect, request.param: {request.param})var var_from_fixture_indirectyield varpytest.fixture(scopemodule) def fixture_direct(request): # request 参数可选print(ffixture_direct, request: {request})var var_from_fixture_directyield var3.2 测试用例示例 示例 1基础的间接参数化 使用 indirectTrue 表示参数会传递给同名的 fixturefixture 会接收到参数值但测试函数只能获得 fixture 的返回值 pytest.mark.parametrize(fixture_indirect, [110, 120], indirectTrue) def test_fixture_indirect(fixture_indirect):print(fCase fixture_indirect: {fixture_indirect})# 注意这里无法直接访问参数值 110, 120 会运行两次测试每次 - 先执行 fixture_indirect获得参数 110/120 - 然后运行测试函数得到 fixture 的返回值fixture_indirect, request: SubRequest fixture_indirect for Function test_fixture_indirect[110] fixture_indirect, request.param: 110 PASSED [ 50%] Case fixture_indirect: var_from_fixture_indirectfixture_indirect, request: SubRequest fixture_indirect for Function test_fixture_indirect[120] fixture_indirect, request.param: 120 PASSED [100%] Case fixture_indirect: var_from_fixture_indirect示例 2通过 request 获取参数值 通过 request 参数获取原始的参数化值使用 request.node.callspec.params 访问参数字典 pytest.mark.parametrize(fixture_indirect, [110, 120], indirectTrue) def test_fixture_indirect_request(fixture_indirect, request):print(fCase fixture_indirect: {fixture_indirect})my_test_param request.node.callspec.params[fixture_indirect]print(fCase request.param: {my_test_param}) 除了基本功能外还能获取原始参数 - fixture 的返回值: var_from_fixture_indirect - 原始参数值: 110/120fixture_indirect, request: SubRequest fixture_indirect for Function test_fixture_indirect_request[110] fixture_indirect, request.param: 110 PASSED [ 50%] Case fixture_indirect: var_from_fixture_indirect Case request.param: 110fixture_indirect, request: SubRequest fixture_indirect for Function test_fixture_indirect_request[120] fixture_indirect, request.param: 120 PASSED [100%] Case fixture_indirect: var_from_fixture_indirect Case request.param: 120示例 3多参数组合测试 如何组合多个参数化装饰器直接参数化和间接参数化的混合使用 pytest.mark.parametrize(fixture_indirect, [111, 222], indirectTrue) pytest.mark.parametrize(test_param, [a, b]) def test_fixture_param(fixture_indirect, test_param):print(ffixture_indirect: {fixture_indirect})print(ftest_param: {test_param}) 会生成 4 个测试用例组合 (111, a) (111, b) (222, a) (222, b)fixture_indirect, request: SubRequest fixture_indirect for Function test_fixture_param[a-111] fixture_indirect, request.param: 111 PASSED [ 25%] Case fixture_indirect: var_from_fixture_indirect Case test_param: a PASSED [ 50%] Case fixture_indirect: var_from_fixture_indirect Case test_param: bfixture_indirect, request: SubRequest fixture_indirect for Function test_fixture_param[a-222] fixture_indirect, request.param: 222 PASSED [ 75%] Case fixture_indirect: var_from_fixture_indirect Case test_param: a PASSED [100%] Case fixture_indirect: var_from_fixture_indirect Case test_param: b示例 4部分间接参数化 如何在一个参数化中同时使用直接和间接参数使用 indirect 列表指定哪些参数是间接的 pytest.mark.parametrize(fixture_indirect, my_test_param,[(111, a), (222, b)],indirect[fixture_indirect]) def test_fixture_indirect_param_partial(fixture_indirect, my_test_param):print(fCase fixture_indirect: {fixture_indirect})print(fCase test_param: {my_test_param}) 会生成 2 个测试用例 (111, a) (222, b)fixture_indirect, request: SubRequest fixture_indirect for Function test_fixture_indirect_param_partial[111-a] fixture_indirect, request.param: 111 PASSED [ 50%] Case fixture_indirect: var_from_fixture_indirect Case test_param: afixture_indirect, request: SubRequest fixture_indirect for Function test_fixture_indirect_param_partial[222-b] fixture_indirect, request.param: 222 PASSED [100%] Case fixture_indirect: var_from_fixture_indirect Case test_param: b4. 最佳实践 选择合适的参数化方式 简单参数使用直接参数化需要预处理或者复杂设置的参数使用间接参数化 合理使用 scope 对于耗时的 fixture使用更大的 scope如 module可以提高测试效率注意 scope 对测试隔离的影响 参数化组织建议 相关的参数组合放在一起使用有意义的参数名考虑测试的可读性和维护性 5. 总结 Pytest 的参数化和 fixture 功能为我们提供了强大而灵活的测试工具 灵活性可以根据需要选择直接或间接参数化可复用性fixture 机制支持测试代码的重用可维护性通过合理组织参数和 fixture使测试代码更易维护效率支持多种方式组合参数提高测试效率 掌握这些高级用法可以帮助我们写出更好的测试代码提高测试效率和代码质量。 参考资料 Pytest 官方文档Pytest Fixture 文档Pytest Parametrize 文档
http://www.dnsts.com.cn/news/259825.html

相关文章:

  • 怎么做自动发卡网站临翔网站建设
  • 石龙镇做网站聊城广告设计公司
  • 详情页模板 套用广州seo公司如何
  • 成都高速公路网站建设招标租号网站咋做
  • 建个公司网站要多少钱中铁建设集团官网登录
  • 哈尔滨网站建设 seo前端学习网站建设教程
  • 建手机网站的软件有哪些做企业网站选百度云还是阿里云
  • 网站前端用什么做绍兴市科信建设工程检测中心网站
  • 建设网站怎样提要求如何建立网站或网页
  • 网站的ico图标做多大分类目录采用的是
  • 黄浦上海网站建设wordpress中文工具箱
  • 重庆万州网站建设多少钱百度推广网站必须备案吗
  • 网站开发代理招商正规制作网站公司
  • 带数据库网站设计collectfrom企业网站模版
  • 网站主体负责人游戏代理300元一天
  • 凡科做的网站能被收录吗百度图片收录提交入口
  • 万年历网站做电子商务网站开发的基本流程
  • 建一个门户网站内蒙古做网站公司
  • 统计网站访问量中小企业网站建设济南兴田德润厉害吗
  • 河北邯郸区号长沙百度网站推广优化
  • 网站做的支付宝接口不用js做网站
  • 南宁建设网站白城网络推广
  • 沈阳黑酷做网站建设优化公司怎么样沈阳建站网页模板
  • 西部数码网站助手教程游戏开发比网站开发
  • 网站 空间 双线郑州app开发哪家好
  • 优秀全屏企业网站服装线上结合线下的推广方案
  • 兰州网站建设q.479185700惠lamp网站开发黄金组...
  • 佛山网站建设怎么做广州外贸网站建设公司价格
  • 长沙官网网站制作公司wordpress 文章缩略图
  • 深圳网站建设便捷建设银行徐州分行网站