最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python unittest框架操作實例解析

 更新時間:2020年04月13日 09:35:32   投稿:yaominghui  
這篇文章主要介紹了Python unittest框架操作實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

操作步驟

  • 導入框架,import unitest
  • 測試類必須繼承類:.class 類名(unittest.TestCase):
  • 在類中所有定義testXXX(區(qū)分大小寫)開頭的函數(shù)都是可執(zhí)行的測試用例
  • 鉤子方法setUp(每個測試用例前執(zhí)行)、tearDown(每個測試用例后執(zhí)行)
  • 執(zhí)行用例unitest.main()
  • 斷言

常用斷言

方法 等價于 描述
assertEqual(a,b) a==b 值是否相等
aassertNotEqual(a,b) a!=b 值是否不相等
aasserIs(a,b) a is b 值是否相同
aassertIsNot(a,b) a is not b 值是否不同
assertIn(a,b) a in b a是否包含b
assertNotIn(a,b) a not in b a是否不包含b
ssertTrue(a) bool(a) is true 是否為真
assertFalse(a) bool(a)is false 是否為假
assertIsNone(a) a is None 是否為空
assertIsNotNone(a) a is None 是否不為空
assertIsInstance(a,b) Instance(a,b) a與b的數(shù)據(jù)類型一樣
assertNotIsInstance(a) not Instance(a,b) a與b的數(shù)據(jù)類型不一樣

舉例說明

#!/usr/bin/python3
# encoding:utf-8
'''
Created on 2019-10-12
@author: EDZ
'''
#!/usr/bin/python3
# encoding:utf-8
import unittest

#繼承unittest基類
class un_test(unittest.TestCase):
  def setUp(self):
    print("鉤子方法,每個用例執(zhí)行前執(zhí)行")
  def tearDown(self):
    print("鉤子方法,每個用例執(zhí)行后執(zhí)行")
  #必須testXXX命名函數(shù)才會被執(zhí)行
  def test_Equal(self):
    print('1.assertEqual值相同')
    a='中國'
    b='中國'
    self.assertEqual(a,b)
  def test_Is(self):
    a='中國'
    b='中國'
    print('2.assertIs值相同')
    self.assertIs(a,b)
  def test_Instance(self):
    a = 'aaa' 
    b = [1,2,3,4]
    print(type(a),type(b),"3.數(shù)據(jù)類型不相等")
    self.assertNotIsInstance(type(a),type(b))
  def cf(self,a,b):
    return a/b  
  def test_rasi(self):
    print('4.1/0拋出異常')
    self.assertRaises(ZeroDivisionError,self.cf,1,0)
  
if __name__=="__main__":
  #unittest執(zhí)行本類全部testXXX命名的測試用例
  unittest.main()
  #-----------下面為特殊加載方式-------------------
  '''
  #通過文件模塊加載(loadTestsFromModule)
  suite = unittest.TestSuite()
  loader = unittest.TestLoader()#用例加載器
  #文件模塊名,例如有文件moku.py 第一步:import moku loader.loadTestsFromModule(文件名)
  suite.addTest(loader.loadTestsFromModule(moku))
  
  #通過測試類來加載(loadTestsFromTestCase)
  suite = unittest.TestSuite()
  loader = unittest.TestLoader()#用例加載器
  #例如有文件moku.py 其中有類名classT 第一步導入類:from moku import classT (loader.loadTestsFromTestCase(classT))#類名
  suite.addTest(loader.loadTestsFromTestCase(un_test))#如果類在本文件模塊內(nèi)直接加載。

  #一個一個添加
  suite = unittest.TestSuite()
  suite.addTest(un_test('test_Equal'))#(類名('函數(shù)'))

  #測試用例數(shù)較多時,采用defaultTestLoader.discover()方式
  suite = unittest.defaultTestLoader.discover('./',pattern='y*.py', top_level_dir=None)
  #1、因為unittest中規(guī)定,測試用例必須test開頭,所以discover中的pattern格式才是test*.py
  #2、start_dir是存放測試用例的目錄
  #pattern='test*.py':表示用例文件名的匹配原則。此處匹配以“test”開頭的.py 類型的文件,* 表示任意多個字符
  #top_level_dir= None 測試模塊的頂層目錄,如果沒有頂層目錄,默認為None
 
  runner = unittest.TextTestRunner(verbosity=2)
  runner.run(suite)
  
      這里的verbosity是一個選項,表示測試結(jié)果的信息復雜度,有三個值
      0 (靜默模式): 你只能獲得總的測試用例數(shù)和總的結(jié)果 比如 總共100個 失敗20 成功80
      1 (默認模式): 非常類似靜默模式 只是在每個成功的用例前面有個“.” 每個失敗的用例前面有個 “F”
      2 (詳細模式):測試結(jié)果會顯示每個測試用例的所有相關(guān)的信息
      并且 你在命令行里加入不同的參數(shù)可以起到一樣的效果
      加入 --quiet 參數(shù) 等效于 verbosity=0
      加入--verbose參數(shù)等效于 verbosity=2
      什么都不加就是 verbosity=1</pre>
  '''

運行結(jié)果

鉤子方法,每個用例執(zhí)行前執(zhí)行
1.assertEqual值相同
鉤子方法,每個用例執(zhí)行后執(zhí)行
鉤子方法,每個用例執(zhí)行前執(zhí)行
<class 'str'> <class 'list'> 3.數(shù)據(jù)類型不相等
鉤子方法,每個用例執(zhí)行后執(zhí)行
鉤子方法,每個用例執(zhí)行前執(zhí)行
2.assertIs值相同
鉤子方法,每個用例執(zhí)行后執(zhí)行
鉤子方法,每個用例執(zhí)行前執(zhí)行
4.1/0拋出異常
鉤子方法,每個用例執(zhí)行后執(zhí)行
Ran 4 tests in 0.001s
OK
說明:鉤子方法每個用例都執(zhí)行,Ran 4 表示成功執(zhí)行4個testXXX的測試用例

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

井陉县| 工布江达县| 兰西县| 南召县| 那曲县| 东台市| 霍邱县| 工布江达县| 崇礼县| 合肥市| 西安市| 宜兰县| 海安县| 隆子县| 三明市| 铁力市| 抚松县| 安达市| 洮南市| 湖州市| 肥乡县| 武乡县| 榆社县| 察哈| 津市市| 邓州市| 巫山县| 年辖:市辖区| 贡觉县| 阜南县| 开化县| 开原市| 郑州市| 苏州市| 临泉县| 桐乡市| 文登市| 永川市| 永春县| 芦山县| 长丰县|