unittest 有兩種執行方式,1是在unittest 執行,2不在unittest執行
在unittest模式下,執行測試方法跟下面的呼叫語句沒有關係
不在unittest下,執行的測試方法跟下面的you呼叫語句有關係
eg1:
第一種是在主函式下通過例項化類然後呼叫。
if __name__ == '__main__':
t=testing()
t.test1()
eg2:
執行當前測試類下的所有測試方法
unittest.main(
)unittest.mian(verbosity=0)
#代表執行的模式
eg3:
先建立乙個空的測試套件,通過測試裝載把測試用例裝載到測試套件中
新增多個測試用例的
suite=unittest.testsuite(
)#建立乙個空測試套件
suite.addtests(
[test(
'test1'
),test(
'test2')]
)#新增兩個測試用例
eg4:一次新增乙個測試用例
suite=unittest.testsuite(
)suite.addtest(test(
"test"
))
這裡需要注意的一次新增兩個的addtest後帶個s
而一次性新增乙個addtest後面沒有s
eg5:對於不同檔案,可以跨檔案執行
suite.addtests(unittest.testloader(
).loadtestsfromname(
'模組名.類名'))
#模組名就是.py 檔名稱。而型別就是class 後面寫的型別。
runner = unittest.texttestrunner(
)#將在測試的數用texttestrunner執行
runer.run(suite)
#執行
eg6:
類裡面的測試方法遵循順序ascci碼,從小到大,數字-大寫字母,小寫字母
suite = unittest.testsuite(
) suite.addtests(unittest.testloader(
).loadtestsfromnames(
['gui_test2.test2'
,'gui_test1.test'])
) runner = unittest.texttestrunner(
) runner.run(suite)
eg7:
通重載入類名來執行裡面的測試方法,如果檔案在同乙個檔案中不需要導包,如果不在乙個檔案在需要導包suite = unittest.testsuite()
suite = unittest.testsuite(
) suite.addtests(unittest.testloader(
).loadtestsfromtestcase(
'類名大寫不需要引號'))
suite.addtests(unittest.testloader(
).loadtestsfromtestcase(
'類名大寫不需要引號'))
ruuner=unittest.texttestrunner(
) runner.run(suite)
eg8:
檢視測試的結果使用的testresult測試結果
suite = unittest.testsuite(
)suite.addtests(unittest.testloader(
).loadtestsfromtestcase(
'類名大寫不需要引號'))
result = unittest.testresult(
)#建立乙個儲存結果的物件
suite.run(result = result)
result.failures
result.testsrun
result.errors
eg:9
生成txt測試報告
suite = unittest.testsuite(
) suite.addtests(unittest.testloader(
).loadtestsfromtestcase(test)
)# 隨便選擇乙個新增用例方式
with
open
('log.txt'
,'w'
,encoding=
'utf8'
)as f:
runner = unittest.texttestrunner(stream=f,verbosity=2)
runner.run(suite)
eg10:
生成html報告.生成報告需要導包需要放在python安裝目錄下的lib下
from htmltestrunnercn import htmltestreportcn
from htmltestrunneren import htmltestreporten
from time import strftime
suite = unittest.testsuite(
) suite.addtests(unittest.testloader(
).loadtestsfromname(
'模組名.方法名'))
now = strftime(
"%y%m%d%h%m%s"
)with
open
('./report/test_repport%s.html'
%now,
'wb'
)as f:
runner = htmltestrunner(title=
'test'
,stream=f,verbosity=2)
runer.run(suite)
unittest(執行用例)
from selenium import webdriver from time import sleep import unittest 匯入unittest庫 import htmltestrunner 建立乙個類,並且該類繼承unittest.case類 初始環境,每乙個用例執行時都會先執行這...
unittest用例執行的順序
用例的執行順序涉及多個層級 在多個測試目錄的情況下,先執行哪個目錄?在多個測試檔案的情況下,先執行哪個檔案?在多個測試類的情況下,先執行哪個測試類?在多個測試方法 用例 的情況下,先執行哪個測試方法?import unittest class testbdd unittest.testcase de...
c 關於throw的unit test 寫法
在做unit test時,發現有的try,catch語句中會有throw語句,雖然觀察同事的 中對於這樣的語句通常不做測試,但有時因為特殊要求或者乾脆為了追求測試百分比,還是要學會如何進行測試,記錄一下今天學到的測試方法。原理 當程式進入需要測試的原 中並執行到throw語句時,如果上一層語句中也有...