欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python unittest框架操作實(shí)例解析

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

操作步驟

  • 導(dǎo)入框架,import unitest
  • 測(cè)試類必須繼承類:.class 類名(unittest.TestCase):
  • 在類中所有定義testXXX(區(qū)分大小寫(xiě))開(kāi)頭的函數(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 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ù)類型不一樣

舉例說(shuō)明

#!/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='中國(guó)'
    b='中國(guó)'
    self.assertEqual(a,b)
  def test_Is(self):
    a='中國(guó)'
    b='中國(guó)'
    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()
  #-----------下面為特殊加載方式-------------------
  '''
  #通過(guò)文件模塊加載(loadTestsFromModule)
  suite = unittest.TestSuite()
  loader = unittest.TestLoader()#用例加載器
  #文件模塊名,例如有文件moku.py 第一步:import moku loader.loadTestsFromModule(文件名)
  suite.addTest(loader.loadTestsFromModule(moku))
  
  #通過(guò)測(cè)試類來(lái)加載(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開(kāi)頭,所以discover中的pattern格式才是test*.py
  #2、start_dir是存放測(cè)試用例的目錄
  #pattern='test*.py':表示用例文件名的匹配原則。此處匹配以“test”開(kāi)頭的.py 類型的文件,* 表示任意多個(gè)字符
  #top_level_dir= None 測(cè)試模塊的頂層目錄,如果沒(méi)有頂層目錄,默認(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</pre>
  '''

運(yùn)行結(jié)果

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python 沒(méi)有main函數(shù)的原因

    Python 沒(méi)有main函數(shù)的原因

    這篇文章主要介紹了Python 沒(méi)有main函數(shù)的原因,文中講解非常詳細(xì),示例代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • python注釋和運(yùn)算符詳解

    python注釋和運(yùn)算符詳解

    這篇文章主要為大家介紹了python注釋和運(yùn)算符,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • python的多元數(shù)據(jù)類型(下)

    python的多元數(shù)據(jù)類型(下)

    這篇文章主要為大家詳細(xì)介紹了python的多元數(shù)據(jù)類型,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Python中optparser庫(kù)用法實(shí)例詳解

    Python中optparser庫(kù)用法實(shí)例詳解

    這篇文章主要介紹了Python中optparser庫(kù)用法實(shí)例詳解,介紹了optparser的引入,初始化等相關(guān)內(nèi)容,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • 如何將python項(xiàng)目部署在一臺(tái)服務(wù)器上

    如何將python項(xiàng)目部署在一臺(tái)服務(wù)器上

    服務(wù)器less技術(shù)是一種無(wú)需管理服務(wù)器即可運(yùn)行應(yīng)用程序的方法,最流行的服務(wù)器less平臺(tái)是AWS Lambda,這篇文章主要介紹了如何將python項(xiàng)目部署在一臺(tái)服務(wù)器上,需要的朋友可以參考下
    2023-10-10
  • Python裝飾器語(yǔ)法糖

    Python裝飾器語(yǔ)法糖

    今天小編就為大家分享一篇關(guān)于Python裝飾器語(yǔ)法糖,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • Python?numpy中的ndarray介紹

    Python?numpy中的ndarray介紹

    這篇文章主要介紹了Python?numpy中的ndarray,numpy?模塊通常被稱為?matplotlib?模塊伴侶,numpy可以方便快捷地對(duì)大量數(shù)據(jù)進(jìn)行科學(xué)計(jì)算,為matplotlib?繪制圖表提供數(shù)據(jù),下面來(lái)看看文章內(nèi)容的詳細(xì)介紹吧
    2022-01-01
  • Python3實(shí)現(xiàn)發(fā)送QQ郵件功能(html)

    Python3實(shí)現(xiàn)發(fā)送QQ郵件功能(html)

    這篇文章主要為大家詳細(xì)介紹了Python3實(shí)現(xiàn)發(fā)送QQ郵件功能,html格式的qq郵件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • python的metaclass使用小結(jié)

    python的metaclass使用小結(jié)

    python中的metaclass可謂熟悉而又陌生,自己開(kāi)發(fā)時(shí)很少用,閱讀源碼時(shí)卻經(jīng)常遇到,那么到底什么是metaclass呢?何時(shí)使用metaclass呢?這篇文章主要介紹了python的metaclass,需要的朋友可以參考下
    2024-01-01
  • 使用Python實(shí)現(xiàn)炫酷的數(shù)據(jù)動(dòng)態(tài)圖大全

    使用Python實(shí)現(xiàn)炫酷的數(shù)據(jù)動(dòng)態(tài)圖大全

    數(shù)據(jù)可視化是通過(guò)圖形、圖表、地圖等可視元素將數(shù)據(jù)呈現(xiàn)出來(lái),以便更容易理解、分析和解釋,它是將抽象的數(shù)據(jù)轉(zhuǎn)化為直觀形象的過(guò)程,本文給大家介紹了使用Python實(shí)現(xiàn)炫酷的數(shù)據(jù)動(dòng)態(tài)圖大全,需要的朋友可以參考下
    2024-06-06

最新評(píng)論