# 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. git中设置代理

    说明:在某种原因下,整个网络都是使用代理的情况下,需要使用git clone,这时就需要设置代理了. 在没有设置代理的时候,直接克隆报错  Failed to connect to gitee.com ...

  2. vm virtualbox 里的ubuntu挂载windows的文件夹

    1.先在virtualbox里设置好共享文件夹 如右图所示: 共享文件夹-添加共享文件夹 里面: 选择好 共享文件夹路径,起好 共享文件夹名称,下面都不用选. 假设共享文件名是ShareD, 2. 然 ...

  3. 2019-08-07 纪中NOIP模拟B组

    T1 [JZOJ1385] 直角三角形 题目描述 二维平面坐标系中有N个位置不同的点. 从N个点选择3个点,问有多少选法使得这3个点形成直角三角形. 数据范围 $3 \leq N \leq 1500$ ...

  4. Windows下解决github push failed (remote: Permission to userA/XXXX.git denied to userB.) 上传gitHub失败报错

    Windows环境下解决 github push failed (remote: Permission to userA/XXXX.git denied to userB.) · 初学GitHub的朋 ...

  5. 并查集路径压缩优化 UnionFind PathCompression(C++)

    /* * UnionFind.h * 有两种实现方式,QuickFind和QuickUnion * QuickFind: * 查找O(1) * 合并O(n) * QuickUnion:(建议使用) * ...

  6. C语言中各数据类型(eg.int和float的区别)

  7. 题解 P4289 【[HAOI2008]移动玩具】

    题目地址:https://www.luogu.com.cn/problem/P4289 题解原地址:https://createsj.blog.luogu.org/solution-p4289 让我们 ...

  8. MFC对话框常用操作文章收藏

    1.改变控件文本 参考链接:https://blog.csdn.net/active2489595970/article/details/88856235 所有控件的文本都可以用这种方式动态改变. 2 ...

  9. wap网站开发小记(转载)

    一:网页的一些标记 1:声明 <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http ...

  10. Hadoop TextInputFormat

    1. TextInputFortmat TextInputFormat是默认的InputFormat.每条记录是一行输入.Key是LongWritable类型,存储该行在整个文件中的字节偏移量(不是行 ...