Python unittest 使用基本過程

unittest是Python的標準的單元測試框架,能夠很好的和自動化測試相結合,並且有獨立的測試報告框架

unittest的主要構成部分

1)test fixture

用於初始化清理等操作。在selenium測試中,我們可以用來做webdriver的初始化。

2)testcase

測試用例,unittest的最小單元。

用於對指定輸入的返回結果進行檢測。

在unittest中提供了testcase基類,用來創建新的測試用例。

3)testsuit

測試套件,一系列測試用例或測試套件的組合

在unittest中由testsuit來實現

4)test runner

測試執行器,負責用例執行並生成測試報告。

在unittest中提供了命令行模式和Gui模式來執行


unittest的標準案例

import unittest
import sys

def add(a,b):
    return(a+b)
class demoTest(unittest.TestCase):
    def test_add_4_5(self):
        self.assertEqual(add(4,5),9)

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

Ran 1 test in 0.000s


OK

下面一步步展示如何使用unittest來測試

1)導入unittest模塊

import unittest
2)定義一個被測試函數

def add(a,b):
    return(a+b)

3)創建一個 unittest.TestCase子類

class demoTest(unittest.TestCase):
4)在demoTest新增一個測試方法:test_4_5

測試方法必須以test開頭

class demoTest(unittest.TestCase):
    def test_add_4_5(self):
        self.assertEqual(add(4,5),9)
5)在新增的測試方法test_4_5中添加斷言驗證

class demoTest(unittest.TestCase):
    def test_add_4_5(self):
        self.assertEqual(add(4,5),9)
6)最後在main函數中調用unittest方法啓動測試。

下表信息是在運行unittest時可能的輸出信息
序號描述
1OK表示測試通過
2fail表示測試不通過,控制檯輸出斷言異常信息
3ERROR表示測試異常
將上面的斷言語句改寫成

self.assertEqual(add(4,5),8)
輸出的錯誤結果爲
F
======================================================================
FAIL: test_add_4_5 (__main__.demoTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:/Users/minkl/PycharmProjects/untitled/unitest.py", line 8, in test_add_4_5
    self.assertEqual(add(4,5),8)
AssertionError: 9 != 8


----------------------------------------------------------------------
Ran 1 test in 0.002s


FAILED (failures=1)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章