pytest-运行指定用例(通过可配置文件)

pytest想要运行指定用例除了可以在命令上加参数,还能通过在文件里配置来实现运行指定的用例
up收到的需求是,在jenkins上通过勾选用例之后构建任务,pytest就能够执行指定的用例
up设计的是通过把想要执行的用例都配置到yml文件中,在jenkins勾选后,就可以修改里面的文件来达到需求

#yml文件
ScriptsFile:
  all_script:   #这里代表的是所有的用例,方便jenkins去显示所有的用例
    - test_a
    - test_b
    - test_c
    - test_d
    - test_e
    - test_f
    - test_g
    - test_h
    - test_i
    - test_j

  run_script:   #这里代表的是需要执行的用例
    - test_a
    - test_d
    - test_e
    - test_c

因为up是通过并行执行用例的方式去执行,所以收集获取是放在了pytest_configure钩子函数中,作为前置函数(具体可以看up之前的帖子)
在前置函数中通过yml读取到需要执行的用例,并保存在环境变量中(不能用全局变量,因为其他进程的worker不能获取到),然后在pytest_collection_modifyitems钩子函数中拿到,就可以去掉不需要的用例了(注意:只能在原items中进行操作,不能新建items对象来替换,否则会失效)

def pytest_collection_modifyitems(items):
    '''
    收集用例钩子函数:根据配置过滤出不需要的用例
    :param session:
    :param config:
    :param items:
    :return:
    '''
    if len(items) == len(os.environ['runlist'].split(',')):
        for i in range(len(items) - 1, -1, -1):
            if items[i].name not in os.environ['runlist'].split(','):
                items.remove(items[i])
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
pytest中,可以使用不同的方法来指定执行的测试用例。一种方法是使用pytest.mark标记函数来标记测试用例,然后通过指定标记名来运行相应的用例。例如,可以使用以下命令来运行标记为"finished"的测试用例pytest -m finished 另一种方法是使用模糊匹配来执行特定条件的测试函数。可以使用"-k"选项标识来指定执行的测试用例名包含的关键字。例如,可以使用以下命令来执行包含关键字"test_func"的测试用例pytest -k "test_func" 此外,还可以通过在pytest配置文件中设置运行规则来指定执行的测试用例。在配置文件中,可以使用"addopts"参数来指定命令行的参数,使用"testpaths"参数来指定测试用例的路径,使用"python_files"参数来指定模块名的规则,使用"python_classes"参数来指定类名的规则,使用"python_functions"参数来指定方法名的规则。可以根据需要进行相应的配置,然后直接运行pytest命令即可。 请注意,以上方法可以单独使用,也可以组合使用,以满足不同的执行需求。 #### 引用[.reference_title] - *1* *2* [pytest执行特定测试用例](https://blog.csdn.net/beckynie1989/article/details/128131524)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [pytest测试用例运行方式](https://blog.csdn.net/Leaf_xiaoMing/article/details/126357214)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值