zoukankan      html  css  js  c++  java
  • python批量执行多个文件中的用例

    Python unittest利用discover获取指定目录或多级目录下的测试用例


    最近在写接口自动化框架,由python+requests+unittest构建(其他还有些导入模块,这里暂且不说),目前还在搭建当中,整体其框架结构如下:

    在编写Common下的RunTools组件(主要封装的是获取测试用例、执行测试、生成测试报告、发送邮件等相关函数) 时,遇到一些坑,在这里进行总结:

    1、利用unittest的discover获取指定目录下匹配的相关测试用例

    封装函数如下:

    class RunTools:
    def chooseDirCases(self,casedir,pattern):
    '''
    根据指定目录获取匹配的测试用例
    :param casedir: 测试用例目录路径
    :param pattern: 匹配模式
    :return: 测试用例集
    '''
    discover_cases=unittest.defaultTestLoader.discover(casedirpath,pattern=pattern)
    return discover_cases
    实例:

    runtools=RunTools()
    a=runtools.chooseDirCases('DL_Cases','test*.py')
    tips:这种方式是可以获取指定目录下的匹配模式的测试用例,目录的属性可以是dict,也可以是python package

    2、利用unittest的discover获取多级目录的所有测试用例

    封装函数如下:

    class RunTools:
    def chooseAllCases(self,pattern):
    '''
    获取TestCases下所有的测试用例
    :param pattern: 匹配模式
    :return: 测试用例集
    '''
    discover_all_cases=unittest.defaultTestLoader.discover(testcase_path,pattern=pattern,top_level_dir=None) #testcase_path是测试用例的根目录
    return discover_all_cases
    实例:

    runtools=RunTools()
    b=runtools.chooseAllCases('test*.py')


    tip:discover是递归匹配文件的,如果设定的目录是测试用例的根目录的话,discover会去匹配每个子目录下的所有用例,匹配成功的用例就加载到discover,但是在这里需要注意一点,存放用例的目录属性必须是python package,必须要有__init__.py,不然不会获取成功。

  • 相关阅读:
    mongodb
    python中读取文件的read、readline、readlines方法区别
    uva 129 Krypton Factor
    hdu 4734
    hdu 5182 PM2.5
    hdu 5179 beautiful number
    hdu 5178 pairs
    hdu 5176 The Experience of Love
    hdu 5175 Misaki's Kiss again
    hdu 5174 Ferries Wheel
  • 原文地址:https://www.cnblogs.com/zhenyu1/p/13046861.html
Copyright © 2011-2022 走看看