unittest 测试套件使用汇总篇
# 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 测试套件使用汇总篇的更多相关文章
- unittest测试套件
测试套件就是测试集,测试集是测试用例的集合. a.按用例顺序执行(addtest) 当addtest与unittest的测试规则冲突时,仍然按照ASCII码的顺序执行. import unittest ...
- Python+Selenium笔记(四):unittest的Test Suite(测试套件)
(一) Test Suite测试套件 一个测试套件是多个测试或测试用例的集合,是针对被测程序的对应的功能和模块创建的一组测试,一个测试套件内的测试用例将一起执行. 应用unittest的TestSui ...
- unittest单元测试框架之测试套件(三)
1.测试套件(注意:测试用例先添加先执行,后添加后执行,由此组织与设定测试用例的执行顺序) addTests:添加多个测试用例 addTest:添加单个测试用例 import unittest fro ...
- python+unittest框架第二天unittest之简单认识Test Suite:测试套件
今天了解下测试套件Test Suite,什么是测试套件,测试套件是由多个Test Case测试用例组成的,当然也可以由多个子测试套件组成. 接下来看下如果构建测试套件,构建测试套件的方法: 1.用un ...
- unittest详解(三) 测试套件(TestSuite)
在前面一章中示例了如何编写一个简单的测试,但有两个问题: 我们知道测试用例的执行顺序是根据测试用例名称顺序执行的,在不改变用例名称的情况下,我们怎么来控制用例执行的顺序呢? 一个测试文件,我们直接执行 ...
- Unittest框架之测试套件:TestSuite
前言 使用了unittest.main()方法执行当前模块里的测试用例. 除此之外,Unittest还可以通过测试套件构造测试用例集,再执行测试用例 将测试用例添加至TestSuite(测试套件) 方 ...
- 『心善渊』Selenium3.0基础 — 28、unittest中测试套件的使用
目录 1.测试套件的作用 2.使用测试套件 (1)入门示例 (2)根据不同的条件加载测试用例(了解) (3)常用方式(推荐) 1.测试套件的作用 在我们实际工作,使用unittest框架会有两个问题: ...
- Unittest方法 -- 测试套件
TestSuite 测试固件 一. import unittestclass F6(unittest.TestCase): def setUp(self): pass def tearDown(sel ...
- python实例编写(7)---测试报告与测试套件(多个py文件,1个py文件内多个用例)
一. 一个.py文件批量执行测试用例(一个.py文件下多个用例执行) 如果直接使用:unittest.main(),则按字母顺序执行, 对于前后之间又依赖关系的用例,需要按特定的顺序执行,则使用 s ...
随机推荐
- repeater列表中直接修改状态
<asp:Repeater ID="RepeaterArticleList" runat="server" onitemdatabound="R ...
- 阿里云linux挂载云盘
阿里云购买的第2块云盘默认是不自动挂载的,需要手动配置挂载上. 1.查看SSD云盘 sudo fdisk -l 可以看到SSD系统已经识别为/dev/vdb 2.格式化云盘 sudo mkfs.ext ...
- 获取 Android APP 版本信息工具类(转载)
获取 Android APP 版本信息工具类 获取手机APP版本信息工具类 1.获取版本名称 2.获取版本号 3.获取App的名称 package com.mingyue.nanshuibeidiao ...
- The number of set(位运算+状态dp)一道十分美妙的题目哦!!!!!!
Given you n sets.All positive integers in sets are not less than 1 and not greater than m.If use the ...
- python如何离线装包 离线如何部署python环境
1,安装python windows: 我用的是python3.6.6.exe安装包,需要提前下载好 ubuntu: 自带的python,如果是ubuntu18.04的话,自带的应该是3.6.8 2, ...
- spring自动装配和通过java实现装配
1.组建扫描 在类上添加注解@Component注解可以实现组建扫描 @Component public class A{ ... } 2.自动装配 通过在属性上或者方法上添加@Autowired注解 ...
- Git的基本使用 -- 分支管理
查看分支 git branch 前面带 * 的为当前所在分支 创建分支 git branch 分支名 切换分支 git checkout 分支名 创建并切换到此分支 git checkout -b 分 ...
- 【StarUML】 活动图
StarUML中的活动图本质上是流程图,活动图相对来说,更加专业,它有对信号的处理,对状态动作.数据区别表示,使得更清晰地了解控制流的走向. 1.基本元素 a.活动状态图(Activity).动作状态 ...
- bzoj 4196:[NOI2015] 软件包管理器 (树链剖分)
第一次做树剖 找同学要了模板 + 各种借鉴 先用dfs在划分轻重链并编号, install的时候就从查询的节点到根寻找标记的点有多少个,再用深度减去标记的点的个数,并把路径上所有点都标记 uninst ...
- 转载:Bass management
https://kenrockwell.com/audio/bass-management.htm https://www.axiomaudio.com/blog/bassmanagement htt ...