關於unittest的執行方式

2021-10-03 06:31:26 字數 3140 閱讀 2453

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語句時,如果上一層語句中也有...