一,基本概念
- TestCase:所有測試用例的基類
- TestLoad:加載測試用例,返回TestSuite(測試套件)
- TestSuite:創建測試套件
- TextTestRunner:運行測試用例
- TextTestResult:測試結果(包含 運行多少,錯誤多少,失敗多少)
二,創建測試用例類
- 必須繼承TestCase
- 測試用例的名字必須以test開頭
- 定義setUp和tearDown,在每個測試用例前后做一些輔助工作。
- 一個測試用例應該只測試一個方面,測試目的和測試內容應很明確。主要是調用assertEqual、assertRaises等斷言方法判斷程序執行結果和預期值是否相符。
- 調用unittest.main()啟動自動測試
- 如果測試未通過,會輸出相應的錯誤提示。如果測試全部通過則不顯示任何東西,這時可以添加-v參數顯示詳細信息。
三,有選擇的測試
unittest.
skip
(reason)unittest.
skipIf
(condition, reason)unittest.
skipUnless
(condition, reason)unittest.
expectedFailure
()
# coding=utf-8 class testclass: def sum(self , x, y): return x + y def sub(self , x, y): return x - y
#coding=utf-8 import unittest from myclass import myclass class simpleTest(unittest.TestCase): def setUp(self): print 'start test.....' self.tclass=myclass.testclass() def tearDown(self): print 'end test.....' def testsum(self): self.assertEqual(self.tclass.sum(1, 2),3,'sum test fail') def testsub(self): self.assertEqual(self.tclass.sub(2, 1),1, 'sub test fail') if __name__ == '__main__': # suite=unittest.TestLoader().loadTestsFromTestCase(simpleTest) # unittest.TextTestRunner.verbosity(2).run(suite) for key in dir(unittest):#查看該模塊所有類 print key unittest.main()
#coding=utf-8 import sys import unittest from myclass import myclass #測試模塊中某一個類中的函數 #定義兩個測試用例 class mytest(unittest.TestCase): def setUp(self): self.tclass=myclass.testclass() def tearDown(self): pass @unittest.skip("skipping") def testsum(self): self.assertEqual(self.tclass.sum(1, 2),3,'test sum fail') @unittest.skipUnless(sys.platform.startswith("win"), "requires Windows") def testsub(self): self.assertEqual(self.tclass.sub(2, 1),1,'test sum fail') if __name__ == '__main__': suite = unittest.TestLoader().loadTestsFromTestCase(mytest)#構建測試套件 # suite = unittest.TestSuite([suite1, suite2]) 可以添加多個套件 result= unittest.TextTestRunner(verbosity=2).run(suite) print result