1

我来自 C++ 背景,我的 Python 知识非常有限,我需要以下情况的帮助:

背景:

我们有一个软件SF,它被集成到一个大型系统S中,这个系统S使用 pythonunittest2作为测试框架(但是经过调整)。具体来说,它实现了一个类A,该类继承自unittest2另一个定制的异常处理类B。然后基于A. 系统S仅在 Linux 上可用。然而,这个软件SF也被用作一个独立的应用程序,它应该只unittest2在我们在其他平台上测试它时使用,在这种情况下类A是不可用的。

问题:
我如何在不同的平台上应用不同的测试包?

我可能的解决方案:
我正在考虑基于这个线程实现一个包装类:创建一个包装类来调用现有函数的前置和后置函数?. 该帖子的答案如下:

class Wrapper(object):
    def __init__(self,wrapped_class):
        self.wrapped_class = wrapped_class()

    def __getattr__(self,attr):
        orig_attr = self.wrapped_class.__getattribute__(attr)
        if callable(orig_attr):
            def hooked(*args, **kwargs):
                self.pre()
                result = orig_attr(*args, **kwargs)
                # prevent wrapped_class from becoming unwrapped
                if result == self.wrapped_class:
                    return self
                self.post()
                return result
            return hooked
        else:
            return orig_attr    

但是,我认为上面的线程不太相关,因为它处理的是类成员函数的包装器,而我想要一些包装器类来包装不同的测试包。是否有可能在 Python 中做到这一点?我正在使用 Python 2.7 仅供参考。

非常感谢任何输入,如果有助于使自己清楚,我很乐意添加更多信息。谢谢你。

4

0 回答 0