真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Pythonunittest框架的用法-創(chuàng)新互聯(lián)

這篇文章主要講解了Python unittest框架的用法,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。

成都創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),高陽網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:高陽等地區(qū)。高陽做網(wǎng)站價(jià)格咨詢:18980820575

操作步驟

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

常用斷言

方法等價(jià)于描述
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 ba是否包含b
assertNotIn(a,b)a not in ba是否不包含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("鉤子方法,每個(gè)用例執(zhí)行前執(zhí)行")
  def tearDown(self):
    print("鉤子方法,每個(gè)用例執(zhí)行后執(zhí)行")
  #必須testXXX命名函數(shù)才會(huì)被執(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命名的測(cè)試用例
  unittest.main()
  #-----------下面為特殊加載方式-------------------
  '''
  #通過文件模塊加載(loadTestsFromModule)
  suite = unittest.TestSuite()
  loader = unittest.TestLoader()#用例加載器
  #文件模塊名,例如有文件moku.py 第一步:import moku loader.loadTestsFromModule(文件名)
  suite.addTest(loader.loadTestsFromModule(moku))
  
  #通過測(cè)試類來加載(loadTestsFromTestCase)
  suite = unittest.TestSuite()
  loader = unittest.TestLoader()#用例加載器
  #例如有文件moku.py 其中有類名classT 第一步導(dǎo)入類:from moku import classT (loader.loadTestsFromTestCase(classT))#類名
  suite.addTest(loader.loadTestsFromTestCase(un_test))#如果類在本文件模塊內(nèi)直接加載。

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

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

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部