關於寫自動化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!!!’)
(左右滑動檢視完整程式碼)
目錄結構如圖:
此時在測試套件類(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檔案