unnittest 單元測試

2022-09-12 00:18:35 字數 2218 閱讀 7192

testcase 的幾個特殊方法:

setup():測試方法之前執行,測試前的初始化;

teardown():測試結束後執行,測試後的清理工作;

setupclass():所以測試方法執行前執行 ,單元測試的前期準備,必須使用@classmethod 裝飾器進行修飾,setup()之前執行。整個測試只執行一次。

teardownclass():所以測試方法執行結束後執行,單元測試的清理工作,必須使用@classmethod 裝飾器進行修飾,teardown()之後執行,整個測試只執行一次。

1.加上測試集合可以批量執行同乙個檔案.py下的多個測試用例: testsuit

if__name__ == '__main__' :

testcase1 = unittest.testload().loadtestsfromtestcase(測試類名字1)

testcase2 = unittest.testload().loadtestsfromtestcase(測試類名字2)

suit = unittest.testsuit([testcase1,testcase2 ])

unittest.texttestrunner(verbosity=2).run(suit)

備註:verbosity<=0;輸出的結果不提示執行成功的用例數目;

verbosity =1,輸出結果僅僅以點(.)表示執行成功的用例數目;

verbosity >=2,輸出每個用例的執行的詳細資訊;

testrunner.run() 返回乙個testresult實力物件,其存放著所有測試用例的執行過程的資訊,可以通過dir()方法檢視。

.texttestrunner.run() 以文字的方式

2. 按照特定的順序執行測試用例

unittest.main()是以所有方法名的字串ascii排序執行,可以通過把測試用例新增到測試容器裡執行;

if __name__ = '__main__'

suit =unittest.testsuit()

suit .addtest(類名("方法"))

suit .addtest(mytest("test_add"))

suit .addtest(mytest("test_div"))

runner= unittest.texttestrunner()

runner.run(suit)

3.忽略莫個測試方法 @unittest.skip()

在測試方法前之前 執行@unittest.skip(「skipng」)無條件的忽略

@unittest.skip(a>8,"條件不滿足"):如果a >8,則忽略;

4.命令列模式執行測試用例

python -m unittest  test_model1 test_model2

python -m unittest  test_model.testclass

python -m unittest  test_model.testclass.test_method

5.批量執行測試模組

程式檔案執行:

if __name__ = '__main__'

testsuit= unittest.testload().discover('.')  #載入當前目錄下的有效的測試模組,「.」表示當前的目錄;檔案名字以test 開頭

unittest.texttestrunner(verbosity=2).run(testsuit)

命令列執行:

python -m unittest discover    #目錄需要切換到存放指令碼的目錄下;

discover 的一些引數:

-v :輸出詳細的資訊;

-s:發現指令碼的目錄;

-p:匹配莫個測試檔案:python -m unittest discover  -p "test * .py"

-t:工程的跟目錄下的搜尋可以執行的測試指令碼:例如:python  -m unittest discover -t d:\wew\ewe

6.使用html testrunner 生成html的測試報告

filename="d:\\ly.html"

fp =file(filename,'wb')

runner = html testrunner .html testrunner (stream=fp,title='report title',description =『report_description』)

runner.run(suit)

單元測試 單元測試文章收藏

前言 前段時間公司計畫做自動化測試,自己也打算圍繞幾個點做相關調研,現在想想呢?其實對自動化測試的概念都還不是十分清晰,當時主要還是圍繞 單元測試 向qa小夥伴學習了一段時間,現由於公司重組,學習中斷,這裡簡單記錄一些單元測試好文,留待後續參考.什麼叫自動化測試?自動化測試覆蓋率?覆蓋率如何做到的?...

單元測試之Django單元測試

每個應用,自帶tests.py 整合在django的專案檔案裡,更多是開發人員寫django自動的測試執行 3.1 前後置方法執行特點 django.test.testcase類主要由前 後置處理方法和test開頭的方法組成 特點 繼承於django.test.testcase 測試用例都是test...

單元測試(三) 建立多執行緒單元測試

junit本是不支援多執行緒的,乙個單元測試case主程序跑完,其他new出來的執行緒都會gg思密達。此篇mark乙份在junit中執行多執行緒的方法。net.sourceforge.groboutils groboutils core 5test slf4j public class device...