一、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)

Python----unittest discover()方法与执行顺序的更多相关文章

  1. Python unittest discover()方法与执行顺序补充

    一.discover更多测试用例 可以根据不同的功能创建不同的测试文件,甚至是不同的测试目录,测试文件中还可以将不同的小功能划分为不同的测试类,在类下编写测试用例,让整体结构更加清晰 但通过addTe ...

  2. python:unittest之discover()方法批量执行用例

    自动化测试过程中,自动化覆盖的功能点和对应测试用例之间的关系基本都是1 VS N,如果每次将测试用例一个个单独执行,不仅效率很低, 无法快速反馈测试结果,而且维护起来很麻烦.在python的单元测试框 ...

  3. 在Spring Bean的生命周期中各方法的执行顺序

    Spring 容器中的 Bean 是有生命周期的,Spring 允许在 Bean 在初始化完成后以及 Bean 销毁前执行特定的操作,常用的设定方式有以下十种: 通过实现 InitializingBe ...

  4. C#类中方法的执行顺序

    有些中级开发小伙伴还是搞不太明白在继承父类以及不同场景实例化的情况下,父类和子类的各种方法的执行顺序到底是什么,下面通过场景的举例来重新认识下方法的执行顺序: (下面内容涉及到了C#中的继承,构造函数 ...

  5. unittest的discover方法批量执行02

    前言 我们在写用例的时候,单个脚本的用例好执行,那么多个脚本的时候,如何批量执行呢?这时候就需要用到unittet里面的discover方法来加载用例了. 加载用例后,用unittest里面的Text ...

  6. Python- discover()方法与执行顺序补充

    可以根据不同的功能创建不同的测试文件,甚至是不同的测试目录,测试文件中还可以将不同的小功能划分为不同的测试类,在类下编写测试用例,让整体结构更加清晰 但通过addTest()添加.删除测试用例就变得非 ...

  7. unittest中的testCase执行顺序

    1.方法顺序 def setUp(self): 在测试方法前执行 def tearDown(self): 在测试方法后执行 class TestMethod(unittest.TestCase): # ...

  8. jquery和js的几种页面加载函数的方法以及执行顺序

    参考博客:http://www.cnblogs.com/itslives-com/p/4646790.html    https://www.cnblogs.com/james641/p/783837 ...

  9. odoo开发笔记 -- 多个子类继承同一个父类方法的执行顺序

    场景描述: odoo模块化开发的架构理念,科学&高效, 可以让很多业务场景,尽可能松耦合:让开发人员的主要精力,关注在当前的业务逻辑: 所谓「前人栽树,后人乘凉」,模块整体好比一棵大树, 开发 ...

随机推荐

  1. jQuery常见用法

    jQuery有好多版本本,无法同时引用两个不同的版本,容易造成混乱,用哪一个,调用哪一个.\ jQuery引用到<head></head>中,页面加载时就需要特效调用这些方法. ...

  2. 2018-2019-2 20175205实验一《Java开发环境的熟悉》实验报告

    2018-2019-20175205实验一<Java开发环境的熟悉>实验报告 实验步骤 (一)命令行下Java程序开发 在Linux下运行结果: 在IDEA中运行结果: (二)IDEA下J ...

  3. css img 隐藏的边距

    因为图片存在浏览器默认的边距,正常的情况下,增加这样的属性来消除多余的边距或者多1px的情况 img { display: block; border: node; } 但是这样的话img在父元素里设 ...

  4. WIN10下微信崩溃(已经是最新版)的解决方法

    微信运行错误---------------------------你的微信崩溃次数较多,建议使用最新版本,点击"确定"到官网(http://pc.weixin.qq.com/)下载 ...

  5. Python母版使用

    设定base.html为母版,母版是页面的公共部分,可以减少代码冗余: 母版中变化的部分用:  {% block page-main % }  <!--page-mains是自己起的名称--&g ...

  6. flask、tornado、BaseHTTPServer性能简单对比

    最近写了一个web应用,分别用flask.tornado.BaseHTTPServer都实现了一次,顺便就对比了一下三者的性能,本结果仅对本次测试负责(这句话很内涵,值得推广). 测试工具用了ab,时 ...

  7. mysql批量查询

    一般批量查询的时候都是in关键字,但是在数据量大的时候,效率低下. 这个时候我们就可以考虑使用union . xml 核心代码 <select id="selectList" ...

  8. cssselector元素定位

    转自https://blog.csdn.net/qq_40024178/article/details/78945651 一.概述 cssSelector也是一种常用的选择器,CSS locator比 ...

  9. 王之泰201771010131《面向对象程序设计(java)》第十五周学习总结

    第一部分:理论知识学习部分 第13 章 部署应用程序 1.jar文件 a) java 程序的打包:编译完成后,员 将.class 文件压缩打包为 .jar 文件后, GUI 界面 程序就可以直接双击图 ...

  10. vue-cli 最强指南

    今天在这篇文章里,会对 vue-cli 的功能做个详细的整理,把 vue-cli 所有的功能都列出来.注:这个是官网连接:https://cli.vuejs.org/zh/guide/ ,建议多看细看 ...