我一直熟悉Python中的unittest库,并且我写了几个unitest.TestCase
类似于这个:
class TestOne(unittest.TestCase):
def setUp(self):
pass
def first_test(self):
self.assertEqual('a', 'b')
def second_test(self):
self.assertEqual('a', 'b')
def third_test(self):
self.assertEqual('a', 'b')
def tearDown(self):
pass
class TestTwo(unittest.TestCase):
def setUp(self):
pass
def first_test(self):
self.assertEqual('a', 'b')
def second_test(self):
self.assertEqual('a', 'b')
def third_test(self):
self.assertEqual('a', 'b')
def tearDown(self):
pass
class TestThree(unittest.TestCase):
def setUp(self):
pass
def first_test(self):
self.assertEqual('a', 'b')
def second_test(self):
self.assertEqual('a', 'b')
def third_test(self):
self.assertEqual('a', 'b')
def tearDown(self):
pass
现在这不是我的代码完全如此,但这是遵循的基本结构。
我知道如果我想执行一个TestCase
,我可以这样做:
suite = unittest.TestLoader().loadTestsFromTestCase(TestOne)
unittest.TextTestRunner(verbosity=2).run(suite)
但是,我一直在努力让多个TestCase
同时运行。
我试过这样做:
suite = unittest.TestSuite()
suite.addTest(TestOne())
unittest.TextTestRunner(verbosity=2).run(suite)
但是这会引发错误:
ValueError: no such test method in <class 'unit_tests.TestOne'>: runTest
我知道如果每个案例只进行一次测试,我会使用runTest
方法,但我有几个,所有这些都需要在TestCase
内进行各自的测试。
我尝试了unittest
文档,但是我无法弄清楚如何从单个测试套件中的多个测试用例中运行测试。
我看过nosetests
,如果没有我对代码进行任何修改,我就会做我想做的事情,但我想知道是否有办法从多个案例中运行测试在不依赖外部库的套件中。
答案 0 :(得分:6)
您是否尝试使用TestLoader创建的套件列表创建TestSuite?这是一个改编自Python文档的例子:
suite1 = unittest.TestLoader().loadTestsFromTestCase(TestOne)
suite2 = unittest.TestLoader().loadTestsFromTestCase(TestTwo)
alltests = unittest.TestSuite([suite1, suite2])