如何重用使用unittest.testcase编写的测试

时间:2015-05-01 13:12:09

标签: python python-unittest

我已经使用unittest编写了一些测试,如下所示,我想在另一个我被困住并需要帮助的课程中重复使用它们。 代码段如下。

    MyTestClass.py
    Class MyTestClass(unittest.TestCase):   
        @classmethod
        def test_TC01_set(self):
            self.devAddr = "127.0.0.0"
            self.teststoSkip = 'TC02'

        def skip(type):
            if type in self.teststoSkip:
                self.skipTest('skipped!!') #unittest.Testcase method

        def test_TC02(self):
            self.skip('TC02')
            print 'test_TC02 will do other tasks'

        def test_TC03(self):
            self.skip('TC03')
            print 'test_TC03 will do other tasks'

这样可以正常工作。现在我想在另一个类中重用相同的测试用例。比方说,

    RegressionMyTest.py
    from MyTestClass import MyTestClass
    Class RegressionMyTest(MyTestClass):
        @classmethod
        def setupmytest(self):
            self.test_TC01_set(self)#this will work fine since it is accessing classmethod
            self.tes_TC02(self)#cant access like this since it is not a class method
            self.tes_TC03(self)#cant access like this since it is not a class method

如何在RegressionMyTest中重用MyTestClass中的测试,以便MyTestClass和RegressionMyTest在使用nosetests / unittest单独运行时都能正常工作。

1 个答案:

答案 0 :(得分:0)

我认为您的标题不能正确描述您的问题。您的代码错误是: 在子“类方法”(@classmethod)中调用父类“对象方法”,因为“对象方法”必须具有一个类实例(对象),因此在子“类方法”中,系统可以找到任何对象其父类的实例。

您只需要阅读编程语言中的“类方法”和“对象方法”(或实例方法)的概念。