ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python的setattr可以直接给类设置属性!!!!而不是非要是对象

2021-05-31 22:32:45  阅读:392  来源: 互联网

标签:setattr python unittest self 用例 test class make 属性


 

dynamic.py

import unittest


class MakeTestCases:
    testcases = None

    def make_test_func(self, case=None):
        def func(*args, **kwargs):
            self = args[0]
            self.assertEqual("1", "1")

        return func

    def make_test_class(self, *args, **kwargs):
        # 自动创建测试类,并继承unittest.TestCase
        return type("TestContact", (unittest.TestCase,), {})

    def make(self):
        # 获取动态类
        test_class = self.make_test_class()
        setattr(test_class, "test_case01", self.make_test_func())
        return test_class

 

main.py

import unittest
from b.dynamic import MakeTestCases

if __name__ == '__main__':
    # 构建用例
    test_clazz = MakeTestCases().make()
    test_suite = unittest.TestSuite()
    # 将用例加载至test_suite内
    test_suite.addTests(unittest.TestLoader().loadTestsFromTestCase(test_clazz))
    # 此方法适合 make()返回列表的方式
    # testsuite.addTests(cases)
    # 创建unittest runner
    """
    verbosity参数用法
    0 (quiet): 只显示执行的用例的总数和全局的执行结果。
    1 (default): 默认值,显示执行的用例的总数和全局的执行结果,并对每个用例的执行结果(成功 T 或失败 F)有个标注。
    2 (verbose): 显示执行的用例的总数和全局的执行结果,并输出每个用例的详细的执行结果。
    """
    runner = unittest.TextTestRunner(verbosity=2)
    # 运行测试
    runner.run(test_suite)

 

标签:setattr,python,unittest,self,用例,test,class,make,属性
来源: https://www.cnblogs.com/staff/p/14833652.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有