1. 程式人生 > 程式設計 >Python基於unittest實現測試用例執行

Python基於unittest實現測試用例執行

利用python進行測試時,測試用例的載入方式有2種:

一種是通過unittest.main()來啟動所需測試的測試模組;

一種是新增到testsuite集合中再載入所有的被測試物件,而testsuit裡存放的就是所需測試的用例,下面分別列出3種方法的具體使用方式:

1、通過unittest.main()來執行測試用例的方式:

import unittest 
class UCTestCase(unittest.TestCase):
  def setUp(self):
    #測試前需執行的操作
    .....   
  def tearDown(self):
    #測試用例執行完後所需執行的操作
    .....   
  # 測試用例1
  def testCreateFolder(self):
    #具體的測試指令碼
    ......   
  # 測試用例2
  def testDeleteFolder(self):
    #具體的測試指令碼
    ......    
if __name__ == "__main__":
  unittest.main()

2、通過testsuit來執行測試用例的方式:

import unittest 
# 執行測試的類
class UCTestCase(unittest.TestCase):
  def setUp(self):
    #測試前需執行的操作
    .....    
  def tearDown(self):
    #測試用例執行完後所需執行的操作
    .....
    
  # 測試用例1
  def testCreateFolder(self):
    #具體的測試指令碼
    ......   
  # 測試用例2
  def testDeleteFolder(self):
    #具體的測試指令碼
    ......    
if __name__ == "__main__":
  # 構造測試集
  suite = unittest.TestSuite()
  suite.addTest(UC7TestCase("testCreateFolder"))
  suite.addTest(UC7TestCase("testDeleteFolder")) 
  # 執行測試
  runner = unittest.TextTestRunner()
  runner.run(suite)

3、通過testLoader方式:

import unittest 
class TestCase1(unittest.TestCase):
  #def setUp(self):
  #def tearDown(self):
  def testCase1(self):
    print 'aaa'   
  def testCase2(self):
    print 'bbb'
 
class TestCase2(unittest.TestCase):
  #def setUp(self):
  #def tearDown(self):
  def testCase1(self):
    print 'aaa1' 
  def testCase2(self):
    print 'bbb1'
    
if __name__ == "__main__":
  #此用法可以同時測試多個類
  suite1 = unittest.TestLoader().loadTestsFromTestCase(TestCase1) 
  suite2 = unittest.TestLoader().loadTestsFromTestCase(TestCase2) 
  suite = unittest.TestSuite([suite1,suite2]) 
  unittest.TextTestRunner(verbosity=2).run(suite)

下面針對上述指令碼中應用到的unittest模組下的幾個成員進行簡單的介紹,以便於理解上述程式碼:

  • TestCase:所有測試用例的基本類,給一個測試方法的名字,就會返回一個測試用例例項;
  • TestSuit:組織測試用例的例項,支援測試用例的新增和刪除,最終將傳遞給 testRunner進行測試執行;
  • TextTestRunner:進行測試用例執行的例項,其中Text的意思是以文字形式顯示測試結果。測試的結果會儲存到TextTestResult例項中,包括運行了多少測試用例,成功了多少,失敗了多少等資訊;
  • TestLoader:用來載入TestCase到TestSuite中的,其中有幾個 loadTestsFrom__()方法,就是從各個地方尋找TestCase,建立它們的例項,然後add到TestSuite中,再返回一個TestSuite例項;

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。