如何在不同平台上使用不同的测试包

时间:2013-07-11 00:25:27

标签: python unittest2

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

背景:

  

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

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

我可能的解决方案:
我正在考虑基于这个线程实现一个包装类:Create a wrapper class to call a pre and post function around existing functions?。该帖子的答案如下:

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 FYI。

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

0 个答案:

没有答案