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

分享unittest單元測(cè)試框架中幾種常用的用例加載方法

 更新時(shí)間:2020年12月02日 15:50:03   作者:小公瑾  
這篇文章主要介紹了unittest單元測(cè)試框架中常用的幾種用例加載方法,幫助大家更好的理解和使用python的unittest測(cè)試模塊,感興趣的朋友可以了解下

  unittest模塊是Python自帶的一個(gè)單元測(cè)試模塊,我們可以用來(lái)做單元測(cè)試。unittest模塊包含了如下幾個(gè)子模塊:

  • 測(cè)試用例:TestCase
  • 測(cè)試集:TestSuite
  • 加載用例:TestLoader
  • 執(zhí)行用例:TextTestRunner

  首先編寫(xiě)一個(gè)簡(jiǎn)單的加減乘除數(shù)學(xué)方法類(lèi):

class MathCalculate:
 '''
 加減乘除的計(jì)算類(lèi)
 '''
 def __init__(self, first_num, second_num):
  self.first_num = first_num
  self.second_num = second_num

 def add(self):
  '''
  加法
  :return:
  '''
  return self.first_num + self.second_num

 def subtract(self):
  '''
  減法
  :return:
  '''
  return self.first_num - self.second_num

 def multiply(self):
  '''
  乘法
  :return:
  '''
  return self.first_num * self.second_num

 def divide(self):
  '''
  除法
  :return:
  '''
  try:
   return round(self.first_num / self.second_num, 2)
  except ZeroDivisionError:
   return '∞'

  接下來(lái)我們利用unittest中的TestCase類(lèi)來(lái)編寫(xiě)測(cè)試用例,編寫(xiě)之前,要先知道TestCase類(lèi)以及類(lèi)方法的用法:

  1. 要引用TestCase類(lèi),需要引入unittest模塊
  2. 引用TestCase是編寫(xiě)一個(gè)測(cè)試類(lèi),所以要新建一個(gè)類(lèi)
  3. 測(cè)試類(lèi)里面的方法名都是以test_開(kāi)頭,這樣unittest才能識(shí)別到用例并去執(zhí)行

  新建一個(gè)模塊,編寫(xiě)一個(gè)簡(jiǎn)單的測(cè)試用例類(lèi):

import unittest
from python_for_unittest_testsuite.MathCalculate import MathCalculate as MC


class TestMathCalculate(unittest.TestCase):
 '''
 測(cè)試加減乘除類(lèi)
 '''

 def test_add(self):
  actual = MC(1, 1).add()
  self.assertEqual(2, actual, msg='兩數(shù)相加測(cè)試失敗')

 def test_subtract(self):
  actual = MC(1, 1).subtract()
  self.assertEqual(0, actual, msg='兩數(shù)相減測(cè)試失敗')

 def test_multiply(self):
  actual = MC(1, 1).multiply()
  self.assertEqual(1, actual, msg='兩數(shù)相乘測(cè)試失敗')

 def test_divide(self):
  actual = MC(1, 1).divide()
  self.assertEqual(1, actual, msg='兩數(shù)相除測(cè)試失敗')


if __name__ == '__main__':
 unittest.main()

  我們運(yùn)行代碼之后,得到如下結(jié)果:

  但是這樣遠(yuǎn)遠(yuǎn)達(dá)不到我們的要求,還需要繼續(xù)優(yōu)化,接下來(lái)進(jìn)入正題......

  上面我們看到的是利用unittest.main()執(zhí)行所有的用例,但是有的時(shí)候我們不需要執(zhí)行所有的測(cè)試用例,并且可以按照自己的需求去添加用例,這時(shí)我們就要使用TestSuite來(lái)幫助我們更好地去實(shí)現(xiàn)單元測(cè)試

  方法一:加載測(cè)試用例,直接使用addTest()方法添加測(cè)試用例,代碼示范如下:

import unittest
from python_for_unittest_testsuite.test_math_calculate import TestMathCalculate

suite = unittest.TestSuite()
# 增加一條用例 addTest()方法傳入:類(lèi)名(測(cè)試方法名)
suite.addTest(TestMathCalculate('test_add'))
suite.addTest(TestMathCalculate('test_subtract'))
suite.addTest(TestMathCalculate('test_multiply'))
suite.addTest(TestMathCalculate('test_divide'))

# 上下文管理器,生成測(cè)試報(bào)告
with open('test_math.txt', mode='w+', encoding='utf-8') as f:
 runner = unittest.TextTestRunner(f, 'text', 2)
 runner.run(suite)

  方法二:加載測(cè)試類(lèi),通過(guò)TestLoader里面的loadTestsFromTestCase來(lái)加載測(cè)試類(lèi),代碼示范如下:

import unittest
from python_for_unittest_testsuite.test_math_calculate import TestMathCalculate

suite = unittest.TestSuite()
loader = unittest.TestLoader()
# 加載測(cè)試類(lèi)
suite.addTest(loader.loadTestsFromTestCase(TestMathCalculate))


# 上下文管理器,生成測(cè)試報(bào)告
with open('test_math.txt', mode='w+', encoding='utf-8') as f:
 runner = unittest.TextTestRunner(f, 'text', 2)
 runner.run(suite)

  方法三:加載測(cè)試模塊,通過(guò)TestLoader里面的loadTestsFromModule來(lái)加載測(cè)試類(lèi),代碼示范如下:

import unittest
from python_for_unittest_testsuite import test_math_calculate


suite = unittest.TestSuite()
loader = unittest.TestLoader()
# 加載測(cè)試模塊
suite.addTest(loader.loadTestsFromModule(test_math_calculate))


# 上下文管理器,生成測(cè)試報(bào)告
with open('test_math.txt', mode='w+', encoding='utf-8') as f:
 runner = unittest.TextTestRunner(f, 'text', 2)
 runner.run(suite)

  方法四:自動(dòng)搜尋測(cè)試用例,根據(jù)傳入的測(cè)試模塊的所屬目錄路徑自動(dòng)去查找測(cè)試用例,代碼示范如下:

import unittest

# 根據(jù)傳入的測(cè)試模塊的所屬目錄路徑自動(dòng)去查找
suite = unittest.defaultTestLoader.discover("G:\pycharm\PycharmProjects\python_class\python_for_unittest_testsuite")

# 上下文管理器,生成測(cè)試報(bào)告
with open('test_math.txt', mode='w+', encoding='utf-8') as f:
 runner = unittest.TextTestRunner(f, 'text', 2)
 runner.run(suite)

以上就是unittest單元測(cè)試框架中常用的幾種用例加載方法的詳細(xì)內(nèi)容,更多關(guān)于unittest單元測(cè)試框架 用例加載的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python使用RSA庫(kù)加密和解密

    Python使用RSA庫(kù)加密和解密

    這篇文章介紹了Python使用RSA庫(kù)加密和解密的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • python中實(shí)現(xiàn)延時(shí)回調(diào)普通函數(shù)示例代碼

    python中實(shí)現(xiàn)延時(shí)回調(diào)普通函數(shù)示例代碼

    這篇文章主要給大家介紹了關(guān)于python中實(shí)現(xiàn)延時(shí)回調(diào)普通函數(shù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • 解決numpy矩陣相減出現(xiàn)的負(fù)值自動(dòng)轉(zhuǎn)正值的問(wèn)題

    解決numpy矩陣相減出現(xiàn)的負(fù)值自動(dòng)轉(zhuǎn)正值的問(wèn)題

    這篇文章主要介紹了解決numpy矩陣相減出現(xiàn)的負(fù)值自動(dòng)轉(zhuǎn)正值的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • Python操作MySQL數(shù)據(jù)庫(kù)9個(gè)實(shí)用實(shí)例

    Python操作MySQL數(shù)據(jù)庫(kù)9個(gè)實(shí)用實(shí)例

    這篇文章主要介紹了Python操作MySQL數(shù)據(jù)庫(kù)9個(gè)實(shí)用實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2015-12-12
  • Python反射操作對(duì)象屬性方法詳解

    Python反射操作對(duì)象屬性方法詳解

    這篇文章主要介紹了Python反射操作對(duì)象屬性方法詳解,在Python面對(duì)對(duì)象中,通過(guò)字符串的形式去操作對(duì)象的屬性方法就稱(chēng)之為反射(在Python中一切事物都是可以為對(duì)象),需要的朋友可以參考下
    2023-08-08
  • 如何使用Python實(shí)現(xiàn)數(shù)據(jù)透視表、音頻文件格式轉(zhuǎn)換

    如何使用Python實(shí)現(xiàn)數(shù)據(jù)透視表、音頻文件格式轉(zhuǎn)換

    這篇文章主要介紹了用Python實(shí)現(xiàn)數(shù)據(jù)透視表、音頻文件格式轉(zhuǎn)換,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-10-10
  • python常見(jiàn)進(jìn)制轉(zhuǎn)換方法示例代碼

    python常見(jiàn)進(jìn)制轉(zhuǎn)換方法示例代碼

    Python為我們提供了強(qiáng)大的內(nèi)置函數(shù)和格式化數(shù)字的方法去實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換的功能,下面這篇文章主要給大家介紹了關(guān)于python常見(jiàn)進(jìn)制轉(zhuǎn)換方法的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • 淺談Python的自省Introspection和反射機(jī)制Reflection

    淺談Python的自省Introspection和反射機(jī)制Reflection

    這篇文章主要介紹了淺談Python的自省Introspection和反射機(jī)制Reflection,反射就是通過(guò)字符串的形式去對(duì)象(模塊)中操作(查找/獲取/刪除/添加)成員,一種基于字符串的事件驅(qū)動(dòng),需要的朋友可以參考下
    2023-08-08
  • python+matplotlib演示電偶極子實(shí)例代碼

    python+matplotlib演示電偶極子實(shí)例代碼

    這篇文章主要介紹了python+matplotlib演示電偶極子實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • python猜數(shù)字小游戲?qū)崿F(xiàn)代碼

    python猜數(shù)字小游戲?qū)崿F(xiàn)代碼

    大家好,本篇文章主要講的是python猜數(shù)字小游戲?qū)崿F(xiàn)代碼,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下,方便下次瀏覽
    2022-01-01

最新評(píng)論

遵化市| 西畴县| 随州市| 宁阳县| 新密市| 临高县| 新密市| 榆中县| 仙桃市| 巨鹿县| 天气| 稻城县| 松原市| 阿城市| 百色市| 云霄县| 米脂县| 滦平县| 成武县| 陕西省| 鹤壁市| 德格县| 光泽县| 瑞安市| 武宁县| 高青县| 视频| 安塞县| 自治县| 西乡县| 平远县| 库伦旗| 襄樊市| 蒙山县| 平和县| 镇康县| 蓝山县| 金华市| 彰化县| 德保县| 工布江达县|