• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

博客园    首页    新随笔    联系   管理    订阅  订阅
Python----unittest discover()方法与执行顺序

一、Unittest discover()
可以根据不同的功能创建不同的测试文件,甚至是不同的测试目录,测试文件中还可以将不同的小功能划分为不同的测试类,在类下编写测试用例,让整体结构更加清晰
一般是通过addTest()来添加、删除用例,不同文件不同目录,此时用addTest()就比较麻烦

TestLoader类中提供的discover()方法可以识别测试用例,找到指定目录下所有测试模块,并可递归查到子目录下的测试模块,只有匹配到文件名时才加载
discover(start_dir,pattern='test*.py',top_level_dir= None)
start_dir:要测试的模块名或测试用例目录
pattern='test*.py':表示用例文件名的匹配原则。此处匹配以“test”开头的.py 类型的文件,* 表示任意多个字符
top_level_dir= None 测试模块的顶层目录,如果没有顶层目录,默认为None

下面通过两个实例来说明:
实例1

import unittest
case_path = '****'  #测试用例的目录

discover = unittest.defaultTestLoader.discover(case_path,pattern='test*.py')

if __name__ == '__main__':
    runner = unittest.TextTestRunner()
    runner.run(discover)
#discover()方法会自动根据测试用例目录case_path 匹配查找测试用例文件,并将查找到的测试用例组装到测试套件中,因此,可以直接通过run()方法执行discover,大大简化了测试用例的查找与执行

实例2

def run_all_case():
    suite = unittest.TestSuite()
    all_py = unittest.defaultTestLoader.discover(setting.CASE_PATH,'*.py')
                                        #discover()方法会自动根据测试目录匹配查找测试用例文件(*.py),并将查找到的测试用例组装到测试套件中
    [ suite.addTests(py) for py in all_py]#列表生成式,添加文件里面的case到测试集合里面
    run=bf(suite)
    today = datetime.datetime.today().strftime('%Y-%m-%d %H-%M-%S')
    title = '%s_接口测报告.html'%today
    report_abs_path = os.path.join(setting.REPORT_PATH,title) #
    run.report(title,filename=title,log_path=setting.REPORT_PATH)

 

 

posted on 2019-01-04 14:49  搁浅小夕  阅读(990)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3