Python unittest第一篇:基礎入門+命令行編譯


  unittest單元測試框架最初受JUnit啟發,與其他語言的主要單元測試框架具有相似的風格。 它支持測試自動化,支持開啟或關閉某個測試,支持結合測試。另外它可以生成各個單元測試的報告。為了實現以上功能,unitTest提供了四大功能:

 

測試夾具(test fixture)

  測試夾具起自動初始化、回收資源作用。以類為對象的話,在python里對應的方法分別是test_isupper、test_upper,前者可以起初始化作用,后者可以起回收資源作用。

 

測試用例(test case)

  測試用例是單獨的測試單元。unittest提供了一個基類TestCase,可用於創建新的測試用例。

 

測試套件(test suite)

   測試套件用於將一個個的測試用例結合起來。

 

測試運行器(test runner)

  測試運行器會提供給用戶測試的結果,可以以圖形界面、文本界面等形式返回。

 


 

例子解析

 

  總體上unittest提供了一組豐富的工具,供給用戶構建與測試。本小節用一個簡單的例子和大家演示一下,首先代碼如下:

import unittest

class TestStringMethods(unittest.TestCase):

    def test_upper(self):
        print("test_upper")

    def test_isupper(self):
        print("test_isupper")

    def test_split(self):
        print("test_split")


if __name__ == '__main__':
    unittest.main()

 

1:首先我們執行下代碼,可以看到如圖:

 

 

2: 該類繼承unittest.TestCase類,可以看出,里面有三個function,分別為test_upper、test_isupper、test_split,其中的test_isupper相當於類的構造操作,test_upper相當於類的析構操作,而默認的test_xxx后的函數則是單元測試對應的函數,默認會按照代碼的順序依次執行.

 

3:我們添加一個函數test_split1,代碼如圖:

    def test_split(self):
        print("test_split")

    def test_split1(self):
        print("test_split1")

 

運行結果如圖:

 

4:講好基礎的,我們講關於命令行編譯運行的內容,首先我們拷貝test1.py並生成test2.py。若想要同時編譯運行test1.py與test2.py,又或者我們想編譯運行整個文件夾的unittest模塊代碼,再或者我們只想編譯運行某個py文件下的某個function,這該怎么辦呢?詳細請看下方。

 

①:python -unittest test1 test2——這里指的是按順序執行test1.py test2.py文件中的unittest模塊。

 

②:python -m test1.TestStringMethods——這里指的是執行test1.py文件中名為TestStringMethods的unittest類。

 

③:python -m unittest test1.TestStringMethods.test_split——這里指的是只執行test1.py文件中名為TestStringMethods的unittest類的test_split函數。

 

④:python -m unittest——這里指的是編譯該層目錄下繼承unittest模塊的所有py文件。

 

⑤:python -m unittest discover——等同於python -m Unittest,后還要接參數時要加discover。

 

⑥:python -unittest discover -s dest_Dir -"*.py"——編譯目標dir目錄下繼承unittest模塊的所有py文件,其中-s 后接對應文件夾,-p 后接匹配模式。

 

如果想讓執行結果更為明顯,可以加上 -v;若想獲取其他參數的用法,可以加上 -h。

 


免責聲明!

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



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