zoukankan      html  css  js  c++  java
  • python的setattr可以直接给类设置属性!!!!而不是非要是对象

    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)
  • 相关阅读:
    Window 下配置ChromeDriver(简单4步完成)[转]
    selenium之 chromedriver与chrome版本映射表(更新至v2.46)[转]
    学习网站
    如何理解python中的类和方法(转)
    面试题整理20191127
    mysql 慢查询
    python学习--代码组织实例
    ubuntu下安装Matlab
    SkinPP for VC
    C++中的4个类型转换关键字
  • 原文地址:https://www.cnblogs.com/staff/p/14833652.html
Copyright © 2011-2022 走看看