我已经使用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单独运行时都能正常工作。
答案 0 :(得分:0)
我认为您的标题不能正确描述您的问题。您的代码错误是: 在子“类方法”(@classmethod)中调用父类“对象方法”,因为“对象方法”必须具有一个类实例(对象),因此在子“类方法”中,系统可以找到任何对象其父类的实例。
您只需要阅读编程语言中的“类方法”和“对象方法”(或实例方法)的概念。