unittest單元測試框架中的參數化及每個用例的注釋


相信大家和我有相同的經歷,在寫自動化用例腳本的時候,用例的操作是一樣的,但是就是參數不同,比如說要測一個付款的接口,付款有很多種渠道,另外只有部分參數不一樣,如果我們一個渠道一個渠道的寫,在unittest里面就要寫很多個用例腳本,而且大部分內容都是一樣的,這樣腳本就顯得比較冗余了。

我們可以把不同的參數寫在一個列表中,然后循環列表獲取參數執行用例,python有第三方模塊parameterized來實現循環列表獲取參數執行用例的功能。

另外,之前寫用例腳本,每個用例下面增加三引號注釋,可以增加腳本可讀性,而且在報告中也可以顯示注釋,但是,現在接口用例只寫一個,里面的參數都參數化了,如何顯示不同參數情況下的用例的注釋呢?parameterized下的expand方法已經給我們做好了這些,唯一的缺點是,報告中只能顯示英文注釋,不能顯示中文注釋。

 

 

完整用例代碼:

import os, sys

path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, path)
import unittest
from core import HTMLTestRunner
from parameterized import parameterized
from core import logger
import inspect
from core.tools import p


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


class MyCacl2(unittest.TestCase):
    def setUp(self):
        pass
        # print('測試用例開始執行...')

    def tearDown(self):
        pass
        # print('測試用例執行完成...')

    @parameterized.expand(
        [
            ("fushujiaxiaoshu",-1, 1.5, 0.5),  # 負數加小數
            ("xiaoshujiaxiaoshu",1.1, 2.2, 3.3),  # 小數相加

        ]
    )
    def test_cacl(self,a, b, c, d):  # 此處a不能省略
        try:
            res = cacl(b, c)
        except TypeError as e:
            res = '類型錯誤'
        self.assertEqual(res, d)

  

報告,可以看到用例后顯示了英文注釋

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM