python利用unittest執(zhí)行測試用例幾種方式

python的unittest模塊提供了一個(gè)測試框架,只要我們寫一個(gè)繼承unittest.TestCase的類,類中用setUp做初始化,用tearDown做清理。

主要用到的函數(shù)有:

failedinfo表示不成立打印信息failedinfo,為可選參數(shù)

self.fail([msg])會(huì)無條件的導(dǎo)致測試失敗,不推薦使用。

self.assertEqual(value1, value2, failedinfo) # 斷言value1 == value2

self.assertTrue(表達(dá)式, failedinfo) # 斷言value為真

self.assertFalse(表達(dá)式, failedinfo) # 斷言value為假

利用python進(jìn)行測試時(shí),

測試用例的加載方式有2種:

? 一種是通過unittest.main()來啟動(dòng)所需測試的測試模塊;

? 一種是添加到testsuite集合中再加載所有的被測試對(duì)象,而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__":

#此用法可以同時(shí)測試多個(gè)類

suite1 = unittest.TestLoader().loadTestsFromTestCase(TestCase1)

suite2 = unittest.TestLoader().loadTestsFromTestCase(TestCase2)

suite = unittest.TestSuite([suite1, suite2])

unittest.TextTestRunner(verbosity=2).run(suite)

下面針對(duì)上述腳本中應(yīng)用到的unittest模塊下的幾個(gè)成員進(jìn)行簡單的介紹,以便于理解上述代碼:

TestCase:所有測試用例的基本類,給一個(gè)測試方法的名字,就會(huì)返回一個(gè)測試用例實(shí)例;

TestSuit:組織測試用例的實(shí)例,支持測試用例的添加和刪除,最終將傳遞給? testRunner進(jìn)行測試執(zhí)行;

TextTestRunner:進(jìn)行測試用例執(zhí)行的實(shí)例,其中Text的意思是以文本形式顯示測試結(jié)果。測試的結(jié)果會(huì)保存到TextTestResult實(shí)例中,包括運(yùn)行了多少測試用例,成功了多少,失敗了多少等信息;verbosity默認(rèn)值為1,不限制完整結(jié)果,即單個(gè)用例成功輸出’.’,失敗輸出’F’,錯(cuò)誤輸出’E’;verbosity=2將輸出完整的信息,verbosity=2是指測試結(jié)果的輸出的詳細(xì)程度,有0-6級(jí),具體代碼實(shí)現(xiàn)可看Python27\Lib\unittest\runner.py源代碼

TestLoader:用來加載TestCase到TestSuite中的,其中有幾個(gè)? loadTestsFrom__()方法,就是從各個(gè)地方尋找TestCase,創(chuàng)建它們的實(shí)例,然后add到TestSuite中,再返回一個(gè)TestSuite實(shí)例;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容