当前位置: 首页 > 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.hkea.cn/news/14281140/

相关文章:

  • php网站开发有什么优点郑州网站建设维护
  • 聊城企业做网站推广抖音推广引流
  • 网站做优化东莞网站设计评价
  • 功能型网站建设时间佛山响应式网站设计
  • php 企业网站模板爱奇艺影业公司网站开发意义
  • 上线了网站怎么样优秀网站设计作品分析
  • 教育网站开发方案做网站网页需要什么软件
  • 网站 整体架构杭州建设网杭州建设工程招标平台
  • 网站开发流程北京seo诊断
  • asp系统网站源码用微信公众平台做分类广告网站
  • 西湖区外贸网站建设51找呀模板网
  • 电商网站做导购做网站前期创建文件夹
  • 石家庄市高新区建设局网站杭州利兴建设官方网站
  • 在相亲网站认识了一个做红酒生意的杭州下城区建设局网站
  • 深圳网站系统哪家强wordpress4.8优化
  • 电商类网站开发定制包头球形网架公司
  • 前端和网站部署做网站的最新版高性能网站建设指南
  • 建站seo推广附近电脑平面设计培训班
  • 北京营销型网站公司本地电脑做视频网站 外网连接
  • 电子商务网站开发实训总结报告盐城市亭湖区城乡建设局网站
  • asp网站如何虚拟发布会用框架做网站能找到工作吗
  • wordpress禁止注册百度seo搜索
  • 榆树网站建设对网站建设的建议
  • 培训型网站建设方案网站设计流程步骤
  • 免费的php网站模板网站建设公司下载
  • 云畅网站建设nodejs和wordpress
  • 台州找人做网站wordpress升级快速
  • 网站建设征求意见的通知深入解析wordpress
  • 我要做个网站该怎么做百度小程序给网站做链接
  • 网站建设 课程 说明wordpress 去掉emoji