【发布时间】:2010-11-22 08:20:28
【问题描述】:
我目前有一些单元测试共享一组通用测试。这是一个例子:
import unittest
class BaseTest(unittest.TestCase):
def testCommon(self):
print 'Calling BaseTest:testCommon'
value = 5
self.assertEquals(value, 5)
class SubTest1(BaseTest):
def testSub1(self):
print 'Calling SubTest1:testSub1'
sub = 3
self.assertEquals(sub, 3)
class SubTest2(BaseTest):
def testSub2(self):
print 'Calling SubTest2:testSub2'
sub = 4
self.assertEquals(sub, 4)
if __name__ == '__main__':
unittest.main()
上面的输出是:
Calling BaseTest:testCommon
.Calling BaseTest:testCommon
.Calling SubTest1:testSub1
.Calling BaseTest:testCommon
.Calling SubTest2:testSub2
.
----------------------------------------------------------------------
Ran 5 tests in 0.000s
OK
有没有办法重写上面的代码,使第一个testCommon 不被调用?
编辑: 而不是运行上面的 5 个测试,我希望它只运行 4 个测试,2 个来自 SubTest1,另外 2 个来自 SubTest2。似乎 Python unittest 正在自行运行原始 BaseTest,我需要一种机制来防止这种情况发生。
【问题讨论】:
-
我看到没有人提到它,但是您是否可以选择更改主要部分并运行包含 BaseTest 的所有子类的测试套件?
标签: python unit-testing testing