Django單元測試簡單樣本

來源:互聯網
上載者:User

標籤:int   name   序列   方法   cas   繼承   執行個體   turn   equal   

對一個功能的驗證往往是需要很多多測試案例,可以把測試案例集合在一起執行,這就產生了測試套件TestSuite 的概念,它是用來組裝單個測試案例,規定用例的執行的順序,而且TestSuite也可以嵌套TestSuite。

可以通過addTest() 載入TestCase 到TestSuite 中,再返回一個TestSuite 執行個體。

樣本:將simple_test 中的用例裝載到測試套件中

suite=unittest.TestSuite()  #  建立測試套件suite.addTest(simple_test(‘test_add‘))  # 添加測試案例suite.addTest(simple_test(‘test_divide‘))  # 向套件中添加用例

unittest.makeSuite根據檔案大量建立測試套件,如果一個檔案中有非常多測試案例,可以根據用例名稱的相似性建立測試套件。

unittest.makeSuite(testCaseClass, prefix)

testCaseClass <Class類型>為測試案例類的名稱

prefix <str類型>用例相似的部分名稱<str>

樣本:

suite = unittest.makeSuite(simple_test, ‘test‘)  # 建立並批量載入測試用例

 

unittest.TestLoader()根據目錄大量建立測試套件,可以指定用例存放目錄,根據檔案名稱匹配測試案例。

注意:用例存放的子目錄中必須具備__init__.py 檔案,否則無法載入用例。

unittest.TestLoader().discover(start_dir, pattern=‘test*.py‘, top_level_dir=None)

start_dir 要測試的模組名或測試案例目錄。

pattern=‘test*.py‘ 表示用例檔案名稱的匹配原則。星號“*”表示任意多個字元。

top_level_dir=None 測試模組的頂層目錄。None <=> 測試案例不是放在多級目錄中

樣本:

suites=unittest.defaultTestLoader.discover(‘./testDirectory, pattern=‘*_test.py‘)

suites=unittest.TestLoader().discover(‘./testDirectory, pattern=‘*_test.py‘)

 

建立測試套件後,執行測試案例使用unittest.TextTestRunner().run(TestSuite)

樣本:執行載入simple_test用例的測試套件

runner = unittest.TextTestRunner()runner.run(suite)  # 執行測試案例
unittest.TestSuite() 的常用方法

TestSuite.addTest 添加單個測試案例

suite.addTest(simple_test(‘test_add‘)) 

TestSuite.addTests通過序列添加測試案例

suite.addTests([simple_test(‘test_add‘),simple_test(‘test_divide‘)])

TestSuite.countTestCases() 統計測試套件中的用例個數

suite.countTestCases()
測試套件靈活運用
  • 為測試案例檔案添加suite 方法,方便載入測試套件

樣本:

import unittest  # 匯入unittest  包from unittest_doc.com.Calculator.Calculator import calculator  # 引入需要測試的包# 所有用例需繼承TestCase類或者其子類class simple_test(unittest.TestCase):   def setUp(self):       print(‘@@@初始化[email protected]@@‘)       self.a = calculator(1, 2)   def test_add(self):       print(‘---測試案例test_simple add---‘)       self.assertEqual(self.a.minus(), -1, ‘兩值不相等‘)       self.assertEqual(self.a.add(), 3, ‘兩值不相等‘)       self.assertNotEqual(self.a.divide(), 1, ‘兩值不相等‘)   def test_divide(self):       print(‘---測試案例test_simple divide---‘)       self.assertEqual(self.a.divide(), 0.5)   def tearDown(self):       print(‘@@@結束[email protected]@@‘)def suite():  # 建立測試添加測試套件函數   suite = unittest.TestSuite()  # 建立測試套件   suite.addTests([simple_test(‘test_add‘), simple_test(‘test_divide‘)])return suiteif __name__ == ‘__main__‘:   runner = unittest.TextTestRunner(verbosity=2)   runner.run(suite())

如上樣本:建立測試套件函數,使用時直接調用其函數,不用額外添加用例。

 

  • 嵌套測試套件,多個測試套件組合在一起
suite1 = unittest.TheTestSuite()suite2 = unittest.TheTestSuite()alltests = unittest.TestSuite((suite1, suite2))

Django單元測試簡單樣本

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.