• 通过装饰器实现获取当前执行的用例名称


    import inspect
    """
    动态获取用例名称,并赋值给用例调用类中的某个固定参数pvid
    通过装饰器的调用,可以在用例执行时将用例名称动态传给pvid,同时,如果用例名称不满足要求,pvid保持默认值pvid_test
    """
    
    
    def get_current_function_name():
        """
        inspect.stack():动态获取运行的函数名
        """
        return inspect.stack()
    
    
    def wrap_class(cls):
        """
        函数装饰类装饰器
        :param cls:
        :return:
        """
        def inner(**kwargs):
            res = get_current_function_name()
            func_names = [res[2][3], res[1][3], res[0][3]]
            print(func_names)
            
            case_name = ''
            for func_name in func_names:
                if func_name.startswith('test_'):
                    case_name = func_name
                    break
            if case_name.startswith('test_'):
                return cls(pvid=case_name)
            else:
                return cls(**kwargs)
        return inner
    
    
    @wrap_class
    class ModuleProto:
        """
        测试用例中调用的类
        """
        def __init__(self, **kwargs):
            self.proto = {
                "pvid": "pvid_test"
            }
            if "pvid" in kwargs.keys():
                self.proto["pvid"] = kwargs["pvid"]
                
                
    def test_case_1():
        """
        测试用例
        :return:
        """
        module_proto = ModuleProto()
        print("pvid: ", module_proto.proto['pvid'])
      
      
    if __name__ == '__main__':
        test_case_1()
  • 相关阅读:
    IOS 沙盒机制 浅析
    IOS CALayer(二)
    IOS CALayer(一)
    IOS 二维码扫描
    IOS 二维码生成
    UIView属性
    JSON 与 XML 的比较
    Xcode 中 pch 文件配置
    Error:linker command failed with exit code 1 (use -v to see invocation)
    开发常用宏
  • 原文地址:https://www.cnblogs.com/jiyanjiao-702521/p/12566741.html
Copyright © 2020-2023  润新知