[英]Creating a test suite from multiple test cases
我已經熟悉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
,它做了我想做的事,而無需修改我的代碼,但是我想知道是否有一種方法可以在一個套件中的多個案例中運行測試而不必依賴於外部庫。
您是否嘗試過使用TestLoader創建的套件列表來創建TestSuite? 這是從Python文檔改編而成的示例:
suite1 = unittest.TestLoader().loadTestsFromTestCase(TestOne)
suite2 = unittest.TestLoader().loadTestsFromTestCase(TestTwo)
alltests = unittest.TestSuite([suite1, suite2])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.