python:unittest(測試框架)


一,基本概念

  • TestCase:所有測試用例的基類
  • TestLoad:加載測試用例,返回TestSuite(測試套件)
  • TestSuite:創建測試套件
  • TextTestRunner:運行測試用例
  • TextTestResult:測試結果(包含 運行多少,錯誤多少,失敗多少)

 

二,創建測試用例類

  1. 必須繼承TestCase
  2. 測試用例的名字必須以test開頭
  3. 定義setUp和tearDown,在每個測試用例前后做一些輔助工作。
  4. 一個測試用例應該只測試一個方面,測試目的和測試內容應很明確。主要是調用assertEqual、assertRaises等斷言方法判斷程序執行結果和預期值是否相符。
  5. 調用unittest.main()啟動自動測試
  6. 如果測試未通過,會輸出相應的錯誤提示。如果測試全部通過則不顯示任何東西,這時可以添加-v參數顯示詳細信息。

 

三,有選擇的測試

  • unittest.skip(reason)
  • unittest.skipIf(condition, reason)
  • unittest.skipUnless(condition, reason)
  • unittest.expectedFailure()
# coding=utf-8


class testclass:
    
    def sum(self , x, y):
        return x + y

    def sub(self , x, y):
        return x - y
#coding=utf-8
import unittest
from myclass import myclass

class simpleTest(unittest.TestCase):
    def setUp(self):
        print 'start test.....'
        self.tclass=myclass.testclass()
    
    def tearDown(self):
        print 'end test.....'
        
    def testsum(self):
        self.assertEqual(self.tclass.sum(1, 2),3,'sum test fail')
        
    def testsub(self):
        self.assertEqual(self.tclass.sub(2, 1),1, 'sub test fail')


if __name__ == '__main__':
#     suite=unittest.TestLoader().loadTestsFromTestCase(simpleTest)
#     unittest.TextTestRunner.verbosity(2).run(suite)
    
    for key in dir(unittest):#查看該模塊所有類
        print key
        
    unittest.main()
#coding=utf-8
import sys
import unittest

from myclass import myclass


#測試模塊中某一個類中的函數
#定義兩個測試用例
class mytest(unittest.TestCase):
    def setUp(self):
        self.tclass=myclass.testclass()
        
    def tearDown(self):
        pass
    
    @unittest.skip("skipping")
    def testsum(self):
        self.assertEqual(self.tclass.sum(1, 2),3,'test sum fail')
        
    @unittest.skipUnless(sys.platform.startswith("win"), "requires Windows")
    def testsub(self):
        self.assertEqual(self.tclass.sub(2, 1),1,'test sum fail')
    
if __name__ == '__main__':
    suite = unittest.TestLoader().loadTestsFromTestCase(mytest)#構建測試套件
#     suite = unittest.TestSuite([suite1, suite2])  可以添加多個套件
    result= unittest.TextTestRunner(verbosity=2).run(suite)
    print result


免責聲明!

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



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