1. 程式人生 > >Python 測試框架基礎

Python 測試框架基礎

cti 單元測試 testcase odin self. teardown 添加 imp not in


1. 導入測試對象
2. 導入單元測試框架:unittest
3. 創建繼承自unittest.TestCase類的測試類,類中必須包含三個方法:初始化、測試、結束
  初始化、結束的方法名必須是setUp、tearDown,TestCase類中包含的。
  測試方法中,細節測試步驟,可使用asserEqual對比實際結果和期望結果,同時可在其中定義失敗時,提示內容,如asserEqual(c1,5,‘與期望結果不符‘)



 1 #coding=utf-8
 2 from count import Count
 3 #單元測試框架unittest
 4 import unittest
 5 class
TestAdd(unittest.TestCase):#繼承unittest中的TestCase類 6 #1>測試準備工作,初始化 7 def setUp(self): 8 print "test start" 9 #2>正式測試 10 def testAdd(self): 11 c1=Count(2,3) 12 #斷言函數 13 self.assertEqual(c1.add(),5) 14 # 可以在參數後添加錯誤描述,asserEqual(c1,6,‘結果同預期不符‘)
15 #3>結束工作 16 def tearDown(self): 17 print "test end"

斷言語法            解釋
assertEqual(a, b)    判斷a==b
assertNotEqual(a, b) 判斷a!=b
assertTrue(x)      bool(x) is True
assertFalse(x)      bool(x) is False
assertIs(a, b)      a is b
assertIsNot(a, b)    a is not b
assertIsNone(x)   x is None

assertIsNotNone(x)   x is not None
assertIn(a, b)    a in b
assertNotIn(a, b)    a not in b
assertIsInstance(a, b) isinstance(a, b)
assertNotIsInstance(a, b) not isinstance(a, b)


實際測試中,常常有多條測試case,通常采用測試集來執行。
測試類的定義與上方大致相同,
然後需要定義測試集,繼承自unittest.TestSutie,
然後向測試集中添加測試類中定義的測試case
測試集的執行需要虛擬執行者,定義如runner=unittest.TextTestRunner()
最後讓執行者執行測試集就好:runner.run(suite)
 1 #coding=utf-8
 2 import sys
 3 sys.path.append(.\\practice)
 4 from count import Count
 5 import unittest
 6 class testCount(unittest.TestCase):
 7     def setUp(self):
 8         print test start
 9     def testadd(self):
10         c1 = Count(2,3).add()
11         self.assertEqual(c1,5)
12     def testsub(self):
13         c2 = Count(3,3).sub()
14         self.assertEqual(c2,1)
15     def tearDown(self):
16         print test complete
17 suite = unittest.TestSuite()
18 suite.addTest(testCount(testadd))
19 suite.addTest(testCount(testsub))
20 runner = unittest.TextTestRunner()
21 runner.run(suite)



Python 測試框架基礎