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

Python中Unittest框架的具體使用

 更新時(shí)間:2019年08月27日 11:10:10   作者:Tester_hope  
這篇文章主要介紹了Python中Unittest框架的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

Unittest

1.環(huán)境

Unittest為Python內(nèi)嵌的測(cè)試框架,不需要特殊配置,僅需要在File---settings---Tools----Python Intergrated Tools下配置框架為Unittest

2.編寫規(guī)范

  • 需要導(dǎo)入 import unittest
  • 測(cè)試類必須繼承unittest.TestCase
  • 測(cè)試方法以 test_開(kāi)頭
  • 模塊和類名沒(méi)有要求

3.Unittest介紹

import unittest

def add(x, y):
 return x + y

def sub(x,y):
 return x - y

class UnittestDemo(unittest.TestCase):

 def setUp(self):
  print("I an setup")

 def test_add(self):
  print("my first unit test demo----add")
  self.assertEqual(add(10,1),11,"assert equal")

 def test_sub(self):
  print("my first unit test demo----sub")
  self.assertEqual(sub(10, 1), 9, "assert equal2")

 @unittest.skip("i don't want to run this case.")
 def test_sub1(self):
  print("my first unit test demo----sub1")
  self.assertEqual(sub(10, 1), 9, "assert equal3")

 def tearDown(self):
  print("I an tearDown")

setUp及TearDown

方法級(jí)別的,類里面的每個(gè)方法調(diào)用一次

 def setUp(self):
  print("I an setup")

setUpClass及tearDownClass

類級(jí)別的,類里面的所有方法僅執(zhí)行一次

  @classmethod
 def setUpClass(cls):
  print("I an setUpClass") 

setUpModule,tearDownModule

模塊級(jí)別的,執(zhí)行模塊里面類中的所有方法僅執(zhí)行一次

4.Unittest使用

import unittest

from unittest_task import UnittestDemo
from HTMLTestRunner import HTMLTestRunner


suite=unittest.TestSuite()#創(chuàng)建用例集合
tests = [UnittestDemo("test_add"), UnittestDemo("test_sub"),UnittestDemo("test_sub1")]
suite.addTests(tests)


with open('HTMLReport.html', 'wb') as fi:
 runner = HTMLTestRunner(stream=fi,
       title = 'MathFunc Test Report',
       description='generated by HTMLTestRunner.',
       verbosity=2
       )
 runner.run(suite)

TestCase

多個(gè)測(cè)試用例集合在一起,就是TestSuite

TestSuite

多個(gè)測(cè)試用例集合在一起,就是TestSuite

TestLoader

用來(lái)加載TestCase到TestSuite中的

TestRunner

執(zhí)行測(cè)試用例的,測(cè)試的結(jié)果會(huì)保存到TestResult實(shí)例中,包括運(yùn)行了多少測(cè)試用例,成功了多少,失敗了多少等信息

skip裝飾器

跳過(guò)某個(gè)用例不執(zhí)行

@unittest.skip("i don't want to run this case.")

無(wú)條件跳過(guò)

 unittest.skip(reason)

當(dāng)condition為True時(shí)跳過(guò)

unittest.skipIf(condition, reason)

當(dāng)condition為False時(shí)跳過(guò)

unittest.skipUnless(condition, reason)

self.skipTest('do not run this.')

5.Unittest生成報(bào)告

5.1 Unittest生成txt格式報(bào)告

if __name__ == '__main__':
 suite = unittest.TestSuite()
 
 tests = [TestMathFunc("test_add"), TestMathFunc("test_minus"), TestMathFunc("test_divide")]
 suite.addTests(tests)
 
 with open('UnittestTextReport.txt', 'a') as f:
  runner = unittest.TextTestRunner(stream=f, verbosity=2)
  runner.run(suite)
 

運(yùn)行該文件,就會(huì)發(fā)現(xiàn)目錄下生成了'UnittestTextReport.txt,所有的執(zhí)行報(bào)告均輸出到了此文件中。

verbosity參數(shù)可以控制執(zhí)行結(jié)果的輸出,0 是簡(jiǎn)單報(bào)告、1 是一般報(bào)告、2 是詳細(xì)報(bào)告

5.2 Unittest生成html格式報(bào)告

with open('HTMLReport.html', 'wb') as fi:
 runner = HTMLTestRunner(stream=fi,
       title = 'MathFunc Test Report',
       description='generated by HTMLTestRunner.',
       verbosity=2
       )
 runner.run(suite)

輸出測(cè)試報(bào)告為HTML格式,unittest中htmltestrunner導(dǎo)出測(cè)試報(bào)告,可以修改htmltestrunner中的測(cè)試代碼

其中,的python3中用HTMLTestRunner.py報(bào)ImportError: No module named 'StringIO'如何解決見(jiàn):

http://www.dbjr.com.cn/article/168573.htm

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

相關(guān)文章

  • python枚舉類型定義與使用講解

    python枚舉類型定義與使用講解

    在python中枚舉是一種類(Enum,IntEnum),存放在enum模塊中。枚舉類型可以給一組標(biāo)簽賦予一組特定的值,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-10-10
  • python字符串中加空格的四種方法

    python字符串中加空格的四種方法

    本文主要介紹了python字符串中加空格的四種方法,包括使用加法運(yùn)算符、join()方法、format()方法和f-string,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • python實(shí)現(xiàn)動(dòng)態(tài)數(shù)組的示例代碼

    python實(shí)現(xiàn)動(dòng)態(tài)數(shù)組的示例代碼

    這篇文章主要介紹了python實(shí)現(xiàn)動(dòng)態(tài)數(shù)組的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python中如何利用matplotlib畫多個(gè)并列的柱狀圖

    python中如何利用matplotlib畫多個(gè)并列的柱狀圖

    python是一個(gè)很有趣的語(yǔ)言,可以在命令行窗口運(yùn)行,下面這篇文章主要給大家介紹了關(guān)于python中如何利用matplotlib畫多個(gè)并列的柱狀圖的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • python 遞歸調(diào)用返回None的問(wèn)題及解決方法

    python 遞歸調(diào)用返回None的問(wèn)題及解決方法

    這篇文章主要介紹了python 遞歸調(diào)用返回None的問(wèn)題,本文通過(guò)實(shí)例代碼給大家記錄了解決方案,代碼簡(jiǎn)單易懂,非常不錯(cuò)對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • python實(shí)現(xiàn)自動(dòng)清理重復(fù)文件

    python實(shí)現(xiàn)自動(dòng)清理重復(fù)文件

    這篇文章主要介紹了python如何實(shí)現(xiàn)自動(dòng)清理重復(fù)文件,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-08-08
  • 手動(dòng)安裝Anaconda環(huán)境變量的實(shí)現(xiàn)教程

    手動(dòng)安裝Anaconda環(huán)境變量的實(shí)現(xiàn)教程

    這篇文章主要介紹了手動(dòng)安裝Anaconda環(huán)境變量的實(shí)現(xiàn)教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 區(qū)分python中的進(jìn)程與線程

    區(qū)分python中的進(jìn)程與線程

    這篇文章主要介紹了區(qū)分python中的進(jìn)程與線程,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-08-08
  • Python爬取當(dāng)當(dāng)、京東、亞馬遜圖書信息代碼實(shí)例

    Python爬取當(dāng)當(dāng)、京東、亞馬遜圖書信息代碼實(shí)例

    這篇文章主要介紹了Python爬取當(dāng)當(dāng)、京東、亞馬遜圖書信息代碼實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • python如何通過(guò)openpyxl讀寫Excel文件

    python如何通過(guò)openpyxl讀寫Excel文件

    python操作excel的庫(kù)有很多,有的庫(kù)只能讀取xsl格式,比如xlrd庫(kù),有的庫(kù)只能寫xsl格式,比如xlwt庫(kù),有的只能讀寫xslx格式,比如openpyxl庫(kù),綜合各庫(kù)及 xslx 格式比較常見(jiàn),所以本文主要講解openpyxl庫(kù)對(duì)xslx格式的excel操作,需要的朋友可以參考下
    2023-10-10

最新評(píng)論