一、unittest中各階段的核心概念:testcase, testsuite, 斷言函式, texttestrunner,testfixture
testcase:所用用例的基類,軟體測試中基本的測試單元,測試用例是乙個完整的測試單元,可以對某一問題進行驗證。
乙個完整的測試流程包括:測試前環境的搭建setup,執行測試**(run),以及測試後環境的還原(teardown)
testsuite:多個測試用例的集合,可巢狀使用。
斷言函式:用於對比結果(期望值/實際值)assert 斷言語句和
if 分支有點類似,它用於對乙個
bool
表示式進行斷言,如果該
bool
表示式為
true
,該程式可以繼續向下執行;否則程式會引發
assertionerror
錯誤。texttestrunner:用來執行測試用例的,其中的run(test)會執行testsuite/testcase中的run(result)方法。
testfixture:測試**的執行環境,指測試準備前和執行後要做的工作,包括setup和teardown方法。
二、測試流程:寫測試用例--載入用例--對比結果--執行用例並出結果--測試報告
①寫乙個類繼承unittest.testcase,其中包括多個以test開頭的方法,每個測試方法在載入時生成乙個測試例項。
②載入用例:testsuite類
/ testloader
類③對比結果:使用斷言函式對比(期望值/實際值)
④執行並出結果(texttestrunner類):執行testsuite,並將結果儲存在texttestresult中
⑤出報告(htmltestreport類
):通過htmltestrunner將結果輸出到html
注:1)通過命令列或者unittest.main()執行時,
main
會呼叫texttestrunner
中的run
來執行,或者可以直接通過
texttestrunner
來執行用例
2)runner執行時,預設將結果輸出到控制台,我們可以設定其輸出到檔案,在檔案中檢視 結果,也可以通過
htmltestrunner
將結果輸出到
html
例子:測試方法:
測試用例:
載入用例:
執行結果:
三、其他
1)testfixture——setup(),teardown()方法
setup()
和teardown()
兩個方法(其實是重寫了testcase的這兩個方法),這兩個方法在每個測試方法執行前以及執行後執行一次,setup用來為測試準備環境,teardown用來清理環境,已備之後的測試。
2)載入用例
方法一(testsuite類)
suite=unittest.testsuite()
suite.addtest(testadd('test_add_two_zero'))
方法二(testloader類)
loder=unittest.testloader()
#suite.addtest(loder.loadtestsfromtestcase(testsub)) #以測試類的方式載入
suite.addtest(loder.loadtestsfrommodule(day8_unittest2)) #以測試模組的方式載入
Python 單元測試
一 假設我們編寫了一段程式,主要功能是完成阿拉伯數字和羅馬數字之間的轉換 在羅馬數字中,利用7個字母進行重複或者組合來表達各式各樣的數字 i 1 v 5 x 10 l 50 c 100 d 500 m 1000 還有一些關於構造羅馬數字的規則。此程式的框架如下 其中,class romanerror...
python 單元測試
assertequal a,b assertnotequal a,b 斷言值是否相等 assertis a,b assertisnot a,b 斷言是否同一物件 記憶體位址一樣 assertlistequal list1,list2 assertitemnotequal list1,list2 斷言...
Python單元測試
本文章整理自 使用python3.6編寫乙個單元測試demo,例如 對學生student類編寫乙個簡單的單元測試。1 編寫student類 usr bin env python3 coding utf 8 class student object def init self,name,score s...