1. 程式人生 > >自動化單元測試框架PyUnit

自動化單元測試框架PyUnit

  • 框架介紹

           PyUnit是Python單元測試框架(The Python unit testing framework),可對程式中的最小可測試單元進行檢查和驗證。官方使用文件地址為:http://pyunit.sourceforge.net/pyunit_cn.html

  • 安裝

           Python2.1版本之後將PyUnit作為標準模組,安裝Python後即可使用引入unittest模組即可使用。

  • 測試用例範例

    import requests
    import unittest
    from unittest import TestCase
    
    # 執行測試的類
    class NounsTest(TestCase):
    	# 初始化工作,此例中初始化物料請求地址
        def setUp(self):
            self.url = 'http://www.baidu.com' # 定義一初始地址
    
    	# 資源釋放工作,用例執行完成後執行,此例中無任何操作
        def tearDown(self):
            pass;
    
        # 測試用例,驗證新增物料至資料庫返回狀態碼為200
        def testAddMaterial(self):
            info = ‘json info’
            res = requests.post(self.url, json=info)
            self.assertEqual(res.status_code, 200)
    
    # 測試用例集,新增到用例集中的用例才被執行
    def suite():
        suite = unittest.TestSuite()
        suite.addTest(NounsTest('testAddMaterial'))
        return suite
    
    # 用例執行
    if __name__ == '__main__':
        unittest.main(defaultTest='suite')
  • 範例詳解

    1. 常用函式

      setUp(): 測試用例執行前的初始化工作,可預先初始化會複用的引數。 tearDown(): 測試用例執行後的資源釋放工作,如測試用例執行過程中在資料庫新增內容可以在此函式進行清理工作。無論測試用例是否執行成功,teatDown均會執行。 failedinfo: 作為引數在執行不成功的測試用例下列印資訊。 self.assertEqual(expectValue, actualValue, failedinfo): 判斷兩值是否相等,不想等則失敗,failedinfo可不填寫 其他斷言函式:https://www.cnblogs.com/mq0036/p/7205626.html
    2. 靜態方法

      靜態方法是指一個測試類中僅包含一個測試用例,重寫runTest()方法設計測試用例,執行時呼叫測試類下此方法即可。上述範例未採用靜態方法。
    3. 動態方法

      動態方法是指一個測試類包含多個測試用例,完成對整個模組的測試,結合測試用例集使用。上述範例採用的是動態方法。
    4. 測試用例集

      unittest.TestSuite(), 將測試用例新增到TestSuite中即可。TestSuite中也可新增多個suite,使得所有測試模組一起執行。
    5. 用例執行

      unittest.main(defaultTest='suite'),執行suite中的全部用例,完成後會出現如圖所示提示。