[英]Is test suite deprecated in PyUnit?
按照PyUnit中的示例,我提出了以下運行良好的unittest代碼。
import unittest
class Board:
def __init__(self, x, y):
self.x = x; self.y = y;
def __eq__(self, other):
return self.x == other.x and self.y == other.y
class BoardTest(unittest.TestCase):
def setUp(self):
self.b10_10 = Board(10,10)
self.b10_10p = Board(10,10)
self.b10_20 = Board(10,20)
def tearDown(self):
pass
def test1(self):
self.assert_(self.b10_10 == self.b10_10p)
def test2(self):
self.assert_(not (self.b10_10 == self.b10_20))
class BoardTest2(unittest.TestCase):
def setUp(self):
self.b10_10 = Board(10,10)
self.b10_10p = Board(10,10)
self.b10_20 = Board(10,20)
def tearDown(self):
pass
def test1(self):
self.assert_(self.b10_10 == self.b10_10p)
def test2(self):
self.assert_(not (self.b10_10 == self.b10_20))
def suite():
suite1 = unittest.makeSuite(BoardTest)
suite2 = unittest.makeSuite(BoardTest2)
return unittest.TestSuite((suite1, suite2))
if __name__ == "__main__":
unittest.main()
但是,即使我刪除了
def suite():, 結果是一樣的。 換句話說,固定裝置/套件對於PyUnit似乎並非沒有用。
這個對嗎?
如果要在單個模塊中運行所有測試,則不需要unittest.TestSuite,因為unittest.main()將動態檢查從其調用的模塊並查找從unittest.TestCase派生的所有類。
但是,在許多情況下,TestSuite類仍然很方便:
除了Mark的答案之外,構建您自己的suite()的另一個原因是您是否在動態構建測試。
另外,我花了一些時間弄清楚如何讓PyDev拿起套件並在圖形測試運行程序中運行它。 訣竅是放入這樣的方法:
def load_tests(loader, tests, pattern):
return suite()
這種方法被圖形測試運行器接受。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.