python的unittest模塊提供了一個測試框架楞慈,只要我們寫一個繼承unittest.TestCase的類千所,類中用setUp做初始化轩褐,用tearDown做清理报咳。
主要用到的函數(shù)有:
failedinfo表示不成立打印信息failedinfo侠讯,為可選參數(shù)
self.fail([msg])會無條件的導(dǎo)致測試失敗,不推薦使用暑刃。
self.assertEqual(value1, value2, failedinfo) # 斷言value1 == value2
self.assertTrue(表達(dá)式, failedinfo) # 斷言value為真
self.assertFalse(表達(dá)式, failedinfo) # 斷言value為假
測試用例的加載方式有2種:
? 一種是通過unittest.main()來啟動所需測試的測試模塊;
? 一種是添加到testsuite集合中再加載所有的被測試對象岩臣,而testsuit里存放的就是所需測試的用例溜嗜,下面分別列出3種方法的具體使用方式:
執(zhí)行方式有3種:
1、通過unittest.main()來執(zhí)行測試用例的方式:
```
import unittest
class UCTestCase(unittest.TestCase):
def setUp(self):
#測試前需執(zhí)行的操作
.....
def tearDown(self):
#測試用例執(zhí)行完后所需執(zhí)行的操作
.....
# 測試用例1
def testCreateFolder(self):
#具體的測試腳本
......
# 測試用例2
def testDeleteFolder(self):
#具體的測試腳本
......
if __name__ == "__main__":
unittest.main()
```
2架谎、通過testsuit來執(zhí)行測試用例的方式:
import unittest
# 執(zhí)行測試的類
class UCTestCase(unittest.TestCase):
def setUp(self):
#測試前需執(zhí)行的操作
.....
def tearDown(self):
#測試用例執(zhí)行完后所需執(zhí)行的操作
.....
# 測試用例1
def testCreateFolder(self):
#具體的測試腳本
......
# 測試用例2
def testDeleteFolder(self):
#具體的測試腳本
......
if __name__ == "__main__":
# 構(gòu)造測試集
suite = unittest.TestSuite()
suite.addTest(UC7TestCase("testCreateFolder"))
suite.addTest(UC7TestCase("testDeleteFolder"))
# 執(zhí)行測試
runner = unittest.TextTestRunner()
runner.run(suite)
3炸宵、通過testLoader方式:
import unittest
class TestCase1(unittest.TestCase):
#def setUp(self):
#def tearDown(self):
def testCase1(self):
print 'aaa'
def testCase2(self):
print 'bbb'
class TestCase2(unittest.TestCase):
#def setUp(self):
#def tearDown(self):
def testCase1(self):
print 'aaa1'
def testCase2(self):
print 'bbb1'
if __name__ == "__main__":
#此用法可以同時測試多個類
suite1 = unittest.TestLoader().loadTestsFromTestCase(TestCase1)
suite2 = unittest.TestLoader().loadTestsFromTestCase(TestCase2)
suite = unittest.TestSuite([suite1, suite2])
unittest.TextTestRunner(verbosity=2).run(suite)
下面針對上述腳本中應(yīng)用到的unittest模塊下的幾個成員進(jìn)行簡單的介紹,以便于理解上述代碼:
TestCase:所有測試用例的基本類谷扣,給一個測試方法的名字土全,就會返回一個測試用例實例捎琐;
TestSuit:組織測試用例的實例,支持測試用例的添加和刪除裹匙,最終將傳遞給? testRunner進(jìn)行測試執(zhí)行瑞凑;
TextTestRunner:進(jìn)行測試用例執(zhí)行的實例,其中Text的意思是以文本形式顯示測試結(jié)果概页。測試的結(jié)果會保存到TextTestResult實例中籽御,包括運行了多少測試用例,成功了多少惰匙,失敗了多少等信息技掏;verbosity默認(rèn)值為1,不限制完整結(jié)果项鬼,即單個用例成功輸出’.’,失敗輸出’F’,錯誤輸出’E’;verbosity=2將輸出完整的信息哑梳,verbosity=2是指測試結(jié)果的輸出的詳細(xì)程度,有0-6級秃臣,具體代碼實現(xiàn)可看Python27\Lib\unittest\runner.py源代碼
TestLoader:用來加載TestCase到TestSuite中的涧衙,其中有幾個? loadTestsFrom__()方法哪工,就是從各個地方尋找TestCase奥此,創(chuàng)建它們的實例,然后add到TestSuite中雁比,再返回一個TestSuite實例稚虎;