Python unittest discover()方法與執行順序


一、discover更多測試用例

可以根據不同的功能創建不同的測試文件,甚至是不同的測試目錄,測試文件中還可以將不同的小功能划分為不同的測試類,在類下編寫測試用例,讓整體結構更加清晰

但通過addTest()添加、刪除測試用例就變得非常麻煩

TestLoader 類中提供的discover()方法可以自動識別測試用例

discover(start_dir,pattern='test*.py',top_level_dir= None)

找到指定目錄下所有測試模塊,並可遞歸查到子目錄下的測試模塊,只有匹配到文件名時才加載

start_dir:要測試的模塊名或測試用例目錄

pattern='test*.py':表示用例文件名的匹配原則。此處匹配以“test”開頭的.py 類型的文件,* 表示任意多個字符

top_level_dir= None 測試模塊的頂層目錄,如果沒有頂層目錄,默認為None

實例1:

 1 import unittest
 2 test_dir = './'
 3 #定義測試目錄為當前目錄
 4 discover = unittest.defaultTestLoader.discover(test_dir,pattern='test*.py')
 5 
 6 if __name__ == '__main__':
 7     runner = unittest.TextTestRunner()
 8     runner.run(discover)
 9 discover()方法會自動根據測試目錄test_dir 匹配查找測試用例文件,並將查找到的測試用例組裝到測試套件中,因此,可以直接通過
10 run()方法執行discover,大大簡化了測試用例的查找與執行
11 
12 實例2:
13 suite = unittest.TestSuite()
14 all_cases = unittest.defaultTestLoader.discover(PY_PATH,'Test*.py')
15 #discover()方法會自動根據測試目錄匹配查找測試用例文件(Test*.py),並將查找到的測試用例組裝到測試套件中
16 [suite.addTests(case) for case in all_cases]
17 report_html = BeautifulReport.BeautifulReport(suite)
二、用例執行的順序
unittest 框架默認根據ASCII碼的順序加載測試用例,數字與字母的順序為:0~9,A~Z,a~z
如果要讓某個測試用例先執行,不能使用默認的main()方法,需要通過TestSuite類的addTest()方法按照一定的順序來加載

來源:https://blog.csdn.net/happyuu/article/details/80683161


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM