• 用猴子补丁的方式解决 python unittest按定义的顺序执行用例


    import unittest
    
    # 用猴子补丁的方式解决 testcase 按定义的顺序执行用例
    from unittest.loader import TestLoader
    
    # 自定义一个getTestCaseNames方法, 替换TestLoader中的getTestCaseNames方法
    def getTestCaseNames(self, testCaseClass):
        def isTestMethod(attrname, testCaseClass=testCaseClass,
                         prefix=self.testMethodPrefix):
            return attrname.startswith(prefix) and 
                   callable(getattr(testCaseClass, attrname))
    
        testFnNames = []
        for testFnName in testCaseClass.__dict__:
            if isTestMethod(testFnName):
                testFnNames.append(testFnName)
        return testFnNames
    
    
    # 替换TestLoader中的getTestCaseNames方法
    TestLoader.getTestCaseNames = getTestCaseNames

     测试代码

    class Test(unittest.TestCase):
        def setUp(self) -> None:
            print('setup')
    
        def test_b(self):
            print('test_b')
    
        def test_02(self):
            print('test-02')
          
        def test_01(self):
            print('test-01')
    
        def test_a(self):
            print('test-a')
    
        def meth(self):
            print('meth')
    
    
    if __name__ == '__main__':
        unittest.main()
  • 相关阅读:
    基于python的socket网络编程
    Python3报错:ModuleNotFoundError: No module named '_bz2'
    机器学习博客网站
    《Linux内核设计与实现》 读书笔记(4)--进程的调度
    k8s 简单入门
    docker 简单入门
    python3 教程
    .toml 文件简介
    编码规范
    python3 基本用法
  • 原文地址:https://www.cnblogs.com/yaoqingzhuan/p/12561514.html
Copyright © 2020-2023  润新知