# coding=utf-8
import unittest
from inspect import isfunction def usage():
"""also unittest.__dict__"""
print(unittest.__all__) def stdout_writeText():
suite = unittest.TestSuite()
tests = unittest.TestLoader().loadTestsFromTestCase(TestHetero)
suite.addTests(tests)
with open('test_result.txt', 'w', encoding='utf-8') as file:
runner = unittest.TextTestRunner(stream=file, descriptions='这是第一次执行用例的测试报告!', verbosity=2)
runner.run(suite) def asciisort_members(instance_cls):
"""
instance_cls is class instance object,return : members method name list of class
for exp: ['test_001', 'test_002', 'test_Account', 'test_user'] """
self = instance_cls
return (list(filter(lambda m: not m.startswith("__")
and not m.endswith("__") and m.startswith("test_") and
callable(getattr(self, m)), dir(self)))) def unsort_functions(cls_name:object):
"""cls_name is TestClass Name,return test_* function suite"""
dict_items = list(
filter(lambda x: not x[0].startswith("__") and x[0].startswith("test_"), cls_name.__dict__.items()))
functions = [v for k, v in dict_items if isfunction(v)]
suite = unittest.TestSuite()
suite.addTests(functions)
return suite def raw_members(class_name: object):
""" get all unsort members test_* name list eg it also work well : list(filter(lambda x: not x.startswith("__")
and not x.endswith("__") and x.startswith("test_") ,TestHetero.__dict__.keys())) """ return list(filter(lambda x: not x.startswith("__") and not x.endswith("__") and x.startswith("test_") and isfunction(
eval(class_name.__name__ + ".%s" % x)) and callable(eval(class_name.__name__ + ".%s" % x)),
class_name.__dict__.keys())) def getCaseNameList(cls_name):
"""default ascii sort 0-9 A-Z,a-z ,return list """
return unittest.TestLoader().getTestCaseNames(cls_name) def ascii_makeSuite(cls_name):
"""also unittest.makeSuite(cls_name)"""
return unittest.loader.makeSuite(cls_name) def ascii_loaderClass(cls_name):
"""return suite according to className"""
return unittest.TestLoader().loadTestsFromTestCase(cls_name) def ascii_loaderMoudle(moudleName):
"""unittest.TestLoader().loadTestsFromModule(Hetero),Hetero.py is a module"""
return unittest.TestLoader().loadTestsFromModule(moudleName) def loader_method(fun_name: str):
""" unittest.TestLoader().loadTestsFromName("Hetero.TestHetero.test_user")"""
return unittest.TestLoader().loadTestsFromName(fun_name) def loader_methods(fun_namelist: list):
"""unittest.TestLoader().loadTestsFromNames(["Hetero.TestHetero.test_user","Hetero.TestHetero.test_001"])"""
return unittest.TestLoader().loadTestsFromNames(fun_namelist) def ascii_defaultloader(cls_name):
return unittest.defaultTestLoader.loadTestsFromTestCase(cls_name) def discovers(test_dir):
"""return suite"""
discover = unittest.defaultTestLoader.discover(test_dir, pattern='test*.py')
return discover def suite_addtests(iter_list):
"""[TestHetero("test_001"),TestHetero("test_002")]"""
suite = unittest.TestSuite()
suite.addTests(iter_list)
return suite def suite_addtest(func_method):
"""TestHetero("test_001") : format is className("method_name") """
suite = unittest.TestSuite()
suite.addTests(func_method)
return suite class TestHetero(unittest.TestCase):
@classmethod
def setUpClass(cls):
pass
@classmethod
def tearDownClass(cls):
pass def test_Account(self):
print("Account") def test_user(self):
print("user") def test_001(self):
print("001")
def test_002(self):
print("002") if __name__ == '__main__':
#方法一
suite=unittest.TestSuite()
suite.addTests([TestHetero("%s"%value) for value in raw_members(TestHetero)])
print(suite)
unittest.TextTestRunner(verbosity=2).run(suite)
#方法二
suite2=unsort_functions(TestHetero)
unittest.TextTestRunner(verbosity=2).run(suite2)

test_Account (__main__.TestHetero) ... ok
test_user (__main__.TestHetero) ... ok
test_001 (__main__.TestHetero) ... ok
test_002 (__main__.TestHetero) ... ok

----------------------------------------------------------------------
Ran 4 tests in 0.000s

OK

unittest 测试套件使用汇总篇的更多相关文章

  1. unittest测试套件

    测试套件就是测试集,测试集是测试用例的集合. a.按用例顺序执行(addtest) 当addtest与unittest的测试规则冲突时,仍然按照ASCII码的顺序执行. import unittest ...

  2. Python+Selenium笔记(四):unittest的Test Suite(测试套件)

    (一) Test Suite测试套件 一个测试套件是多个测试或测试用例的集合,是针对被测程序的对应的功能和模块创建的一组测试,一个测试套件内的测试用例将一起执行. 应用unittest的TestSui ...

  3. unittest单元测试框架之测试套件(三)

    1.测试套件(注意:测试用例先添加先执行,后添加后执行,由此组织与设定测试用例的执行顺序) addTests:添加多个测试用例 addTest:添加单个测试用例 import unittest fro ...

  4. python+unittest框架第二天unittest之简单认识Test Suite:测试套件

    今天了解下测试套件Test Suite,什么是测试套件,测试套件是由多个Test Case测试用例组成的,当然也可以由多个子测试套件组成. 接下来看下如果构建测试套件,构建测试套件的方法: 1.用un ...

  5. unittest详解(三) 测试套件(TestSuite)

    在前面一章中示例了如何编写一个简单的测试,但有两个问题: 我们知道测试用例的执行顺序是根据测试用例名称顺序执行的,在不改变用例名称的情况下,我们怎么来控制用例执行的顺序呢? 一个测试文件,我们直接执行 ...

  6. Unittest框架之测试套件:TestSuite

    前言 使用了unittest.main()方法执行当前模块里的测试用例. 除此之外,Unittest还可以通过测试套件构造测试用例集,再执行测试用例 将测试用例添加至TestSuite(测试套件) 方 ...

  7. 『心善渊』Selenium3.0基础 — 28、unittest中测试套件的使用

    目录 1.测试套件的作用 2.使用测试套件 (1)入门示例 (2)根据不同的条件加载测试用例(了解) (3)常用方式(推荐) 1.测试套件的作用 在我们实际工作,使用unittest框架会有两个问题: ...

  8. Unittest方法 -- 测试套件

    TestSuite 测试固件 一. import unittestclass F6(unittest.TestCase): def setUp(self): pass def tearDown(sel ...

  9. python实例编写(7)---测试报告与测试套件(多个py文件,1个py文件内多个用例)

    一.  一个.py文件批量执行测试用例(一个.py文件下多个用例执行) 如果直接使用:unittest.main(),则按字母顺序执行, 对于前后之间又依赖关系的用例,需要按特定的顺序执行,则使用 s ...

随机推荐

  1. linux 中对 mysql 数据表的基本命令

    显示数据表的结构 describe 表名; 建表 use 库名: create table 表名(字段设定列表): 将表中记录清空 delete from 表名; 删表 drop table 表名:

  2. 基于PO和单例设计模式用python+selenium进行ui自动化框架设计

    一)框架目录的结构 二)config包当中的config.ini文件主要是用来存项目的绝对路径,是为了后续跑用例和生成测试报告做准备然后目前的配置文件大都会用yaml,ini,excel,还有.py也 ...

  3. 题解 SP27102/UVA1747 【Swap Space】

    SP27102 [Swap Space] 双倍经验:UVA1747 Swap Space 用(a,b)表示每个硬盘的原容量和新文件系统下的容量.分两种情况考虑:a≤b和a>b 第一类a≤b格式化 ...

  4. git创建远程分支并推送

    1.查看所有分支(-a=>'查看全部的分支') git branch -a 2.创建本地test分支 git branch test 2.2切换test分支 git checkout test ...

  5. oracle分组并在组内排序

    根据c1,c2分组,并且根据c3排序,取第一行select tt.*  from (select row_number() over(partition by c1, c2 order by c3 d ...

  6. 1.6 APP需要怎么测试

    来源:  https://tieba.baidu.com/p/5011439767           http://www.cnblogs.com/testwriter/p/6702624.html ...

  7. win10显示“没有有效的IP地址”

    可能你没有新建该宽带连接!!!(本人就是蠢到如此地步了_(:з)∠)_)

  8. 题解【洛谷P5315】头像上传

    本题就是按照题目模拟, 只是要注意一些细节问题. Wrong Answer的主要有以下2个问题: 注意这句话: 在图片上传前,系统会对图片进行如下处理:如果图片的任何一边长度超过了 G ,那么系统会不 ...

  9. 每天进步一点点------Allegro 蛇形走线

    对于高速数据总线,如果芯片内部没有延时调节功能,通常使用蛇形走线来调整延时以满足时序要求,也就是通常所说的等长线.蛇形走线的目的是调整延时,所以这一类网络都有延迟或相对延迟约束.所以在做蛇形走线调整时 ...

  10. linux deploy---旧手机变废为宝

    前几天朋友送了我一部红米Note 1s,本来不想要,转念一想,不要白不要,就收了. 拿到之后我就想,这么一个1+8的手机能做什么呢? 翻遍了CSDN和简书,找到了一个性价比不错的方法:给旧手机装上一个 ...