如下代码所示,它无法发现子类
但是我想在testcase_subA中执行测试(test_sub_1,test_sub_2)
是否有任何方法可以通过基类加载子类testcase? (不带unittest.main())
import unittest
class testcase_A(unittest.TestCase):
text= "Base class"
@classmethod
def setUpClass(cls):
print("setUpClass A")
def setUp(self):
print("setUp A")
def tearDown(self):
print("tearDown A")
@classmethod
def tearDownClass(cls):
print("tearDownClass A")
class testcase_subA(testcase_A):
def test_sub_1(self):
print(self.text)
print("test sub A 1")
def test_sub_2(self):
print("test sub A 2")
class testcase_B(unittest.TestCase):
@classmethod
def setUpClass(cls):
print("setUpClass B")
def setUp(self):
print("setUp B")
def test_b(self):
print("test B")
def tearDown(self):
print("tearDown B")
@classmethod
def tearDownClass(cls):
print("tearDownClass B")
if __name__ == '__main__':
suiteA = unittest.TestLoader().loadTestsFromTestCase(testcase_A)
suiteB = unittest.TestLoader().loadTestsFromTestCase(testcase_B)
suite = unittest.TestSuite([suiteA, suiteB])
print(suite)
runner = unittest.TextTestRunner()
runner.run(suite)
输出:
setUpClass B
setUp B
test B
tearDown B
tearDownClass B
因此,只有您指定了子流程,子流程才会运行。如果您告诉它只运行父类,它将只运行父类。如果在的父类中有测试,则会看到输出,但不会看到。因此,当我编辑您的运行程序以包含testcase_subA时,我会得到您想要的输出。如果使用pytest或nose2等测试模块运行测试,它也会显示相同的内容
我得到了
相关问题 更多 >
编程相关推荐