unittest 改装框架ascii 排序执行用例,按照自己书写先后顺序执行
设计思路:
获取成员变量class.__dict__.keys()
filter过滤符合要求成员,由于3.x成员dict属性是支持有序的
# coding=utf-8
import unittest
from inspect import isfunction
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()))
第二步:
制作suite原始顺序添加的suite:
suite=unittest.TestSuite()
 suite.addTests([TestHetero("%s"%value) for value in raw_members(TestHetero)])
    print(suite)
    unittest.TextTestRunner(verbosity=2).run(suite)
结果验证:并没有按照ascii 0-9 A-Z a-z自动排序而是按自己书写顺序执行,改装结束
<unittest.suite.TestSuite tests=[<__main__.TestHetero testMethod=test_Account>, <__main__.TestHetero testMethod=test_user>, <__main__.TestHetero testMethod=test_001>, <__main__.TestHetero testMethod=test_002>]>
test_Account (__main__.TestHetero) ... ok
Account
user
001
test_user (__main__.TestHetero) ... ok
002
test_001 (__main__.TestHetero) ... ok
test_002 (__main__.TestHetero) ... ok
----------------------------------------------------------------------
Ran 4 tests in 0.001s
OK
测试类:
class TestHetero(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        pass
    @classmethod
    def tearDownClass(self):
        pass
    def  test_Account(self):
        print("Account")
    def test_user(self):
        print("user")
    def test_001(self):
        # unittest.TestLoader.getTestCaseNames()
        print("001")
    def test_002(self):
        print("002")
unittest 改装框架ascii 排序执行用例,按照自己书写先后顺序执行的更多相关文章
- unittest执行顺序,使用unittest.main()按照test开头,由0-9,A-Z,a-z的顺序执行; 可使用TestSuite类的addTest方法改变执行顺序;
		
import unittestclass Study(unittest.TestCase): # def setUp(self): # print('start') # def tearDown(se ...
 - unittest自动化测试框架核心要素以及应用
		
1. unittest核心要素 unittest介绍 测试框架,不仅仅用于单元测试 python自动的测试包 用法和django.test.TestCase类似 1.1.unitest介绍和核心要素 ...
 - unittest单元测试框架
		
unittest单元测试框架 概述: 单元测试框架主要用来完成以下三件事: 提供用例组织与执行:当测试用例只有几条时,可以不必考虑用例的组织,但是当用例达到成百上千条时,大量的用例堆砌在一起,就产生了 ...
 - Selenium(十五):unittest单元测试框架(一) 初识unittest
		
1. 认识unittest 什么是单元测试?单元测试负责对最小的软件设计单元(模块)进行验证,它使用软件设计文档中对模块的描述作为指南,对重要的程序分支进行测试以发现模块中的错误.在python语言下 ...
 - Java中如何保证线程顺序执行
		
只要了解过多线程,我们就知道线程开始的顺序跟执行的顺序是不一样的.如果只是创建三个线程然后执行,最后的执行顺序是不可预期的.这是因为在创建完线程之后,线程执行的开始时间取决于CPU何时分配时间片,线程 ...
 - js的并行加载与顺序执行
		
javaScript文件(下面简称脚本文件)需要被HTML文件引用才能在浏览器中运行.在HTML文件中可以通过不同的方式来引用脚本文件,我们需要关注的是,这些方式的具体实现和这些方式可能会带来的性能问 ...
 - Python流程控制-1 顺序执行
		
流程控制指的是代码运行逻辑.分支走向.循环控制,是真正体现我们程序执行顺序的操作.流程控制一般分为顺序执行.条件判断和循环控制. 顺序执行 Python代码在执行过程中,遵循下面的基本原则: 普通语句 ...
 - python unittest单元测试框架-3用例执行顺序、多级目录、装饰器、fixtures
		
1.用例执行顺序 unittest默认会按照ascii码的顺序,依次执行.类名--方法名排序,使用discover也是默认排序.如果不想使用默认排序,就使用testsuite测试集的方式. impor ...
 - 【Android自动化】unittest测试框架关于用例执行的几种方法
		
# -*- coding:utf-8 -*- import unittest class test(unittest.TestCase): def setUp(self): print 'This i ...
 
随机推荐
- MySQL主键设计盘点
			
目录 主键定义 主键设计和应用原则 主键生成策略 自增ID UUID 自建的id生成器 Twitter的snowflake算法 @ 最近在项目中用了UUID的方式生成主键,一开始只是想把这种UUID的 ...
 - CodeForces 1144D
			
原题https://vjudge.net/problem/CodeForces-1144D /*求序列就经过几次step变成同一个数, 其实能发现一个数经过step1或者step2变成相邻的数, 所以 ...
 - Linux异常 时间戳 2018-10-08 11:17:22 是未来的 5288025.776562967 秒之后
			
原因:系统时间不对,有可能落后当前实际时间
 - ORA-01789: query block has incorrect number of result columns
			
问题描述 ORA-01789: query block has incorrect number of result columns 原因如下 查询使用了union或者union all的时候查询上下 ...
 - 解决问题:SVN重命名后,不允许提交
			
第一步:选中要修改的文件,右键,修改文件名称,具体操作如下图所示 第二步:提交,提交时,不要提交修改的文件,在上一层文件夹上提交
 - Android 系统签名
			
在做android产品开发的时候,很多时候都需要使用系统签名(比如在使用uid,APK升级的时候),所以,android提供给我们自定义签名文件的工具.这里将流程记录下来: 1.进入/android_ ...
 - 自动构建自己的ASP.NET Core基础镜像
			
在开发过程中,我们可以根据自身情况来定制自己的基础镜像,以便加快CI\CD构建速度以及提高开发体验.这里我们就以ASP.NET Core的基础镜像为例来进行讲解. 本次教程代码见开源库:https:/ ...
 - CSS布局的四种定位方式
			
1.static(静态定位): 默认值.没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明).参考上篇随笔. 2.relative(相对 ...
 - Python列表和字典的简单实操例子
			
# coding=utf-8 name_l = [] passwd_l = [] money_l = [] goods = {} index = 0 def input_user(): print(& ...
 - npm解决node-sass安装失败
			
npm装包一直都很成功,直到我遇见了node-sass这个包 我一直报这样的错误 npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! node-sas ...