use*_*309 4 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'
Run Code Online (Sandbox Code Playgroud)
这将正常工作。现在我想在另一个类中重用相同的测试用例。说,
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
Run Code Online (Sandbox Code Playgroud)
我如何在 RegressionMyTest 中重用 MyTestClass 中的测试,以便 MyTestClass 和 RegressionMyTest 都可以工作,如果它们使用鼻子测试/单元测试单独运行。
通常测试应该断言代码以某种方式运行,所以我不确定在测试套件之间实际共享测试是否有意义,(我认为这不是很明确)
Python 测试用例只是 Python 类,测试运行程序会针对以test_. 因此,您可以像使用普通类一样使用继承。
如果您需要共享功能,您可以创建一个具有共享初始化方法/辅助方法的基类。或者使用跨测试所需的实用函数创建测试混合。
class BasetTestCase(unittest.TestCase):
def setUp(self):
# ran by all subclasses
def helper(self):
# help
class TestCaseOne(BaseTestCase):
def setUp(self):
# additional setup
super(TestCaseOne, self).setUp()
def test_something(self):
self.helper() # <- from base
Run Code Online (Sandbox Code Playgroud)
也许您不想在基类上定义设置方法,而只想使用基类中定义的一些辅助方法在子类上定义?很多选择!
| 归档时间: |
|
| 查看次数: |
2104 次 |
| 最近记录: |