pyUnit為python的標準模塊(unittest)
最小測試單元TestUnit,接著是TestSuite,從TestUnit繼承,可以只實現runTest,更標準的做法是實現setUp、tearDown接著編一些test*函數來做測試。執行:
可以像這樣構造一個測試用例集
def suite():
suite = unittest.def suite():
suite = unittest.TestSuite()
suite.addTest(WidgetTestCase("testSize"))
suite.addTest(WidgetTestCase(”testResize”))
return suite
也可以派生TestSuite:
class WidgetTestSuite(unittest.TestSuite):
def __init__(self):
unittest.TestSuite.__init__(self, map(WidgetTestCase,
("testSize",
"testResize")))
def suite():
return WidgetTestSuite()
如果用於測試的類中所有的測試方法都以test開,可以用PyUnit模塊提供的makeSuite()方法來構造一個TestSuite:
def suite():
return unittest.makeSuite(WidgetTestCase, "test")
可以多個 TestSuite構成更大的測試集
suite1 = mysuite1.TheTestSuite()
suite2 = mysuite2.TheTestSuite()
alltests = unittest.TestSuite((suite1, suite2))
實施測試:
runner = unittest.TextTestRunner()
runner.run(suite)
這裡suite是一個TestSuite的實例
PyUnit模塊中定義了一個名為main的全局方法,使用它可以很方便地將一個單元測試模塊變成可以直接運行的測試腳本,
main()方法使用TestLoader類來搜索所有包含在該模塊中的測試方法,並自動執行它們。如果Python程序員能夠按照約定(以test開頭)
來命名所有的測試方法,那就只需要在測試模塊的最後加入如下幾行代碼即可:
if __name__ == "__main__":
unittest.main()
這樣腳本還可以加參數如:
python main_runner.py WidgetTestCase.testSize