關於寫自動化case

首先新建一個UnitTest類,編寫測試用例,檔名為unit_for_testA。py,程式碼如下:

# 導包

import unittest

class UnitForTestA(unittest。TestCase):

# 前置條件

def setUp(self) -> None:

print(‘this is AsetUp’)

# 後置條件

def tearDown(self) -> None:

print(‘this is AtearDown’)

# 定義測試用例

def test_1(self):

print(‘this is Atest1!!!’)

def test_2(self):

print(‘this is Aest2!!!’)

def test_3(self):

print(‘this is Atest3!!!’)

(左右滑動檢視完整程式碼)

再新建一個類存放套件,檔名為TestSuite_demo。py,直接在UnitTest類中執行無法生效。

下面建立一個測試套件(unittest。TestSuite()),並分別用五種不同的方法給該測試套件新增測試用例。

新增測試用例的第一種方法——單個新增(addTest)

# 匯入unittest的包

import unittest

# 匯入存放測試用例的類

from unittest_demo。unit_for_testA import UnitForTestA

# 建立一個測試套件

suite = unittest。TestSuite()

# 新增測試用例的第一種方法

suite。addTest(UnitForTestA(‘test_1’))

suite。addTest(UnitForTestA(‘test_2’))

suite。addTest(UnitForTestA(‘test_3’))

# 基於Ruunner來執行測試套件

runner = unittest。TextTestRunner()

runner。run(suite)

(左右滑動檢視完整程式碼)

新增測試用例的第二種方法——批次新增(addTests)

# 匯入unittest的包

import unittest

# 匯入存放測試用例的類

from unittest_demo。unit_for_testA import UnitForTestA

# 建立一個測試套件

suite = unittest。TestSuite()

# 新增測試用例的第二種方法

cases = [UnitForTestA(‘test_1’), UnitForTestA(‘test_2’), UnitForTestA(‘test_3’)]

suite。addTests(cases)

# 基於Ruunner來執行測試套件

runner = unittest。TextTestRunner()

runner。run(suite)

(左右滑動檢視完整程式碼)

新增測試用例的第三種方法——根據路徑下的檔名匹配(defaultTestLoader。discover)

該新增測試用例的方法也為批次執行,程式碼中指定的目錄下,如果檔名稱滿足篩選條件,則所有滿足條件的檔案中的所有測試用例都會被執行。

為了看清效果,我們再建一個UnitTest類,編寫測試用例,檔名為unit_for_testB。py,程式碼如下:

# 導包

import unittest

class UnitForTestB(unittest。TestCase):

# 前置條件

def setUp(self) -> None:

print(‘this is BsetUp’)

# 後置條件

def tearDown(self) -> None:

print(‘this is BtearDown’)

# 定義測試用例

def test_1(self):

print(‘this is Btest1!!!’)

def test_2(self):

print(‘this is Best2!!!’)

def test_3(self):

print(‘this is Btest3!!!’)

(左右滑動檢視完整程式碼)

目錄結構如圖:

關於寫自動化case

此時在測試套件類(TestSuite_demo。py)中,根據路徑下的檔名新增測試用例的程式碼為:

# 匯入unittest的包

import unittest

# 建立一個測試套件

suite = unittest。TestSuite()

# 新增測試用例的第三種方法

test_dir = ‘。/’ # 指定的路徑下所有與檔名相匹配的檔案下的測試用例(批次執行)

discover = unittest。defaultTestLoader。discover(start_dir=test_dir, pattern=‘unit_for_test*。py’)

# 基於Ruunner來執行測試套件

runner = unittest。TextTestRunner()

runner。run(discover)

(左右滑動檢視完整程式碼)

執行結果如下圖,由圖可見,在當前目錄下的兩個檔案中的用例都執行了。

start_dir:需要執行的檔案路徑;

pattern:需要匹配的檔名稱,其中unit_for_test*。py匹配所有以unit_for_test開頭的python檔案

關於寫自動化case