unnittest 單元測試


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)

 


免責聲明!

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



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