一、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. 最简单的 react-router4 的安装和使用

    React-Router 的安装  npm install react-router React-Router提供了两个组件:Router和Route.下面看最简单的例子: src/Routes.js ...

  2. python的对象 变量

    对象 所有的数据类型都是对象 字符串 数字:整数.数字 列表.字典 函数.类.模块.方法 print(type(20)) # 查看对象的数据类型 python整型: int  浮点型 :float 精 ...

  3. TeamCity安装

    1 使用docker安装 安装手册:https://hub.docker.com/r/jetbrains/teamcity-server/2 安装包安装. docker run -it --name ...

  4. 第十八节 JS中的正则表达式

    复习字符串操作: search 查找 substring 获取子字符串 charAt 获取某个字符 split 分割字符串,获取数组 var str = 'abcdefghijk'; alert(st ...

  5. flutter-fluro

    路由传参 route.dart import 'package:fluro/fluro.dart'; //添加页面 import 'package:m/pages/loginPage.dart'; i ...

  6. Axure无法签出,团队配合时无法导入项目

    SVN管理项目,团队多人合作维护 在Axure签出时,报错. 提示:无法创建目录 ... 设备上没有空间 SVN也检出失败 当然,还有其他情况 如:未将对象引用设置到对象的实例.等等 个别提示如下图: ...

  7. opencv学习之路(39)、PCA

    一.PCA理论介绍 网上已经有许多介绍pca原理的博客,这里就不重复介绍了.详情可参考 http://blog.csdn.net/zhongkelee/article/details/44064401 ...

  8. [darknet]查看错误结果 sight of wrong

    import os import numpy import cv2 bad_label_file = open("bad_valid.list",'r') names = [] f ...

  9. SAP如何修改表的数据

     修改表: 事务代码:se16n  输入表名字   输入 /h 进入维护模式  修改 GD-EDIT 和 GD-SAPEDIT  内容为大写X.                          se ...

  10. Android系统修改之Notification布局修改(一)

    源码基于Android4.4 相关布局文件的位置: frameworks/base/core/res目录下: 1. notification_template_base.xml 2. notifica ...