前言
unittest是python的標(biāo)準(zhǔn)的單元測(cè)試框架后裸,能夠很好的和自動(dòng)化測(cè)試相結(jié)合瑰钮,并有獨(dú)立的測(cè)試報(bào)告框架。
unittest提供了一系列類讓測(cè)試變得更加容易微驶,下面我們看下unittest的主要構(gòu)成部分
- test fixture
用于初始化浪谴、清理等動(dòng)作。在selenium測(cè)試中因苹,我們可以用來(lái)做webdriver的初始化等等
- testcase
測(cè)試用例苟耻,unittest的最小單元。用以對(duì)指定輸入的返回結(jié)果進(jìn)行檢測(cè)扶檐。在unittest中提供 了TestCase基類凶杖,用來(lái)創(chuàng)建新的測(cè)試用例類。
- test suite
測(cè)試套件款筑,一系列測(cè)試用例或測(cè)試套件的集合智蝠。在unittest中由TestSuite類實(shí)現(xiàn)腾么。
- test runner
測(cè)試執(zhí)行器,負(fù)責(zé)用例執(zhí)行并生成測(cè)試報(bào)告杈湾,在unittest中提供了命令行模式和GUI模式來(lái)執(zhí)行解虱。
unittest使用過(guò)程
下面一步步的展示如何使用unittest來(lái)測(cè)試。
- 導(dǎo)入unitttest模塊
import unittest
- 定義一個(gè)被測(cè)試函數(shù)
def add(a, b):
return a + b
- 創(chuàng)建一個(gè)unittest.TestCase子類
class demoTest(unittest.TestCase):
pass
- 在demoTest新增一個(gè)測(cè)試方法:test_add_4_5, 測(cè)試方法名稱必須以==test==開始
class demoTest(unittest.TestCase):
def test_add_4_5(self):
pass
- 在新增的測(cè)試方法test_add_4_5中添加斷言驗(yàn)證
class demoTest(unittest.TestCase):
def test_add_4_5(self):
self.assertEquals(add(4,5),9)
- 最后漆撞,在main函數(shù)中調(diào)用unittest的main方法啟動(dòng)測(cè)試,最終整個(gè)代碼如下:
# _*_ coding:utf-8 _*_
__author__ = '苦葉子'
import unittest
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
# 被測(cè)函數(shù)
def add(a, b):
return a + b
# 測(cè)試用例
class demoTest(unittest.TestCase):
def test_add_4_5(self):
self.assertEquals(add(4,5),9)
# 主函數(shù)
if __name__ == '__main__':
unittest.main()
- 代碼保存至demoTest.py中殴泰,執(zhí)行下屬命令
python demoTest.py
運(yùn)行結(jié)果如下:
.
----------------------------------------
Run 1 testin 0.000s
OK
- 下表信息是在運(yùn)行unittest是可能的輸出信息
序號(hào) | 描述 |
---|---|
1 | OK 表示測(cè)試通過(guò) |
2 | FAIL 表示測(cè)試不通過(guò),控制臺(tái)輸出斷言異常信息 |
3 | ERROR 表示測(cè)試異常 |
unittest命令
unittest提供了豐富的命令選項(xiàng)來(lái)控制unittest測(cè)試浮驳,下面我們簡(jiǎn)單的列舉如下:
使用方法
python -m unittest 選項(xiàng)
示例,查看幫助信息
python -m unittest -h
序號(hào) | 選項(xiàng) & 描述 |
---|---|
1 | -h, --help 顯示幫助信息 |
2 | -v, --verbose 查完整的測(cè)試結(jié)果輸出信息 |
3 | -q, --quiet 查看最小測(cè)試結(jié)果輸出信息 |
4 | -f, --failfast 在第一次遇到失敗時(shí)艰匙,停止測(cè)試 |
5 | -c, --catch 捕獲control-C并顯示結(jié)果 |
6 | -b, --buffer 將stdout, stderr信息輸出到buffer中 |
總結(jié)
本次主要就python unittest的基本使用進(jìn)行了分享,非常的簡(jiǎn)單抹恳,期望大家能掌握起基本原理员凝,再此基礎(chǔ)上進(jìn)一步擴(kuò)展應(yīng)用于實(shí)戰(zhàn)中。后續(xù)逐步分享unittest相關(guān)技術(shù)奋献。