最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

pytest參數(shù)化:@pytest.mark.parametrize詳解

 更新時間:2024年10月16日 08:41:38   作者:流柯`  
pytest.mark.parametrize裝飾器能夠對測試函數(shù)進行參數(shù)化處理,使得一個測試函數(shù)可以用多組數(shù)據執(zhí)行多次,這有助于檢查不同輸入下的期望輸出是否匹配,提高測試的效率和覆蓋率,裝飾器可以應用于函數(shù)、模塊或類,支持多個裝飾器組合使用,增強測試的靈活性和綜合性

pytest參數(shù)化:@pytest.mark.parametrize

內置的pytest.mark.parametrize裝飾器可以用來對測試函數(shù)進行參數(shù)化處理。

下面是一個典型的范例

檢查特定的輸入所期望的輸出是否匹配:

  • test_expectation.py
import pytest
@pytest.mark.parametrize("test_input, expected", [("3+5", 8), ("2+4", 6), ("6*9", 42),])
def test_eval(test_input, expected):
    assert eval(test_input) == expected

裝飾器@parametrize定義了三組不同的(test_input, expected)數(shù)據,test_eval則會使用這三組數(shù)據

執(zhí)行三次:

$ pytest
=========================== test session starts ============================
platform linux ‐‐ Python 3.x.y, pytest‐4.x.y, py‐1.x.y, pluggy‐0.x.y
cachedir: $PYTHON_PREFIX/.pytest_cache
rootdir: $REGENDOC_TMPDIR, inifile:
collected 3 items
test_expectation.py ..F [100%]
================================= FAILURES =================================
____________________________ test_eval[6*9‐42] _____________________________
test_input = '6*9', expected = 42
@pytest.mark.parametrize("test_input,expected", [
("3+5", 8),
("2+4", 6),
("6*9", 42),
])
def test_eval(test_input, expected):
> assert eval(test_input) == expected
E AssertionError: assert 54 == 42
E + where 54 = eval('6*9')
test_expectation.py:8: AssertionError
==================== 1 failed, 2 passed in 0.12 seconds ====================

該示例中,只有一組數(shù)據是失敗的

通常情況下你可以在traceback中看到作為函數(shù)參數(shù)的input和output。

注意:

你也可以對模塊或者class使用參數(shù)化的marker來讓多個測試函數(shù)在不同的測試集下運行。

你也可以對參數(shù)集中的某個參數(shù)使用mark,比如下面使用了內置的mark.xfail:

  • test_exception.py
import pytest
@pytest.mark.parametrize("test_input, expected", [("3+5", 8), ("2+4", 6), ("6*9", 42, marks=pytest.mark.xfail),])
def test_eval(test_input, expected):
    assert eval(test_input) == expected

運行結果如下:

$ pytest
=========================== test session starts ============================
platform linux ‐‐ Python 3.x.y, pytest‐4.x.y, py‐1.x.y, pluggy‐0.x.y
cachedir: $PYTHON_PREFIX/.pytest_cache
rootdir: $REGENDOC_TMPDIR, inifile:
collected 3 items
test_expectation.py ..x [100%]
=================== 2 passed, 1 xfailed in 0.12 seconds ====================

之前結果是失敗的用例在這里已經被標記為xfailed了。

如果參數(shù)化的列表是一個空列表,比如參數(shù)是某個函數(shù)動態(tài)生成的,請參考empty_parameter_set_mark選項。

可以對一個函數(shù)使用多個parametrize的裝飾器,這樣多個裝飾器的參數(shù)會組合進行調用:

import pytest
@pytest.mark.parametrize("x", [0, 1])
@pytest.mark.parametrize("y", [2, 3])
def test_foo(x, y):
    pass

這會窮舉x和y的所有組合并進行調用。

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Python實現(xiàn)剪貼板歷史管理器

    Python實現(xiàn)剪貼板歷史管理器

    在日常工作和編程中,剪貼板是我們使用最頻繁的功能之一,本文將介紹如何使用Python和PyQt5開發(fā)一個功能強大的剪貼板歷史管理器,感興趣的可以了解下
    2025-05-05
  • Python實現(xiàn)將JSON轉換為CSV格式

    Python實現(xiàn)將JSON轉換為CSV格式

    JSON(JavaScript??Object?Notation)和?CSV(Comma-Separated?Values)是數(shù)據交換和存儲中最常用的兩種格式,本文將詳細介紹如何使用Free?Spire.XLS?for?Python將JSON數(shù)據轉換為?CSV?文件,感興趣的小伙伴可以了解下
    2026-03-03
  • Python中try?except語句及實際應用詳細解釋

    Python中try?except語句及實際應用詳細解釋

    在Python中try和except是用于異常處理的關鍵字,它們可以捕獲程序運行時可能出現(xiàn)的錯誤,從而避免程序崩潰,這篇文章主要介紹了Python中try?except語句及實際應用的相關資料,需要的朋友可以參考下
    2025-04-04
  • python中的Reportlab模塊詳解最新推薦

    python中的Reportlab模塊詳解最新推薦

    reportlab模塊是用python語言生成pdf文件的模塊,安裝方法也簡單,這篇文章主要介紹了python中的Reportlab模塊,需要的朋友可以參考下
    2023-05-05
  • python實現(xiàn)的陽歷轉陰歷(農歷)算法

    python實現(xiàn)的陽歷轉陰歷(農歷)算法

    這篇文章主要介紹了python實現(xiàn)的陽歷轉陰歷(農歷)算法,需要的朋友可以參考下
    2014-04-04
  • 如何使用pyinstaller打包多個和單個python文件詳解

    如何使用pyinstaller打包多個和單個python文件詳解

    最近需要將python寫的程序打包分發(fā)給其他同事使用,下面這篇文章主要給大家介紹了關于如何使用pyinstaller打包多個和單個python文件的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • 基于Python計算圓周率pi代碼實例

    基于Python計算圓周率pi代碼實例

    這篇文章主要介紹了基于Python計算圓周率pi代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • 教你如何使用Conda命令?+?安裝tensorflow

    教你如何使用Conda命令?+?安裝tensorflow

    conda 是開源包(packages)和虛擬環(huán)境(environment)的管理系統(tǒng),這篇文章主要介紹了Conda命令和安裝tensorflow的詳細過程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-01-01
  • Flask之flask-script模塊使用

    Flask之flask-script模塊使用

    Flask Script擴展提供向Flask插入外部腳本的功能,這篇文章主要介紹了Flask之flask-script模塊使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • python3 property裝飾器實現(xiàn)原理與用法示例

    python3 property裝飾器實現(xiàn)原理與用法示例

    這篇文章主要介紹了python3 property裝飾器實現(xiàn)原理與用法,結合實例形式分析了Python3 property裝飾器功能、原理及實現(xiàn)方法,需要的朋友可以參考下
    2019-05-05

最新評論

金秀| 来凤县| 镇安县| 新竹市| 张北县| 古蔺县| 徐水县| 溧阳市| 沅陵县| 贡山| 清丰县| 麟游县| 广饶县| 临漳县| 睢宁县| 上虞市| 庆安县| 台安县| 德钦县| 利津县| 临城县| 巫山县| 抚州市| 临泽县| 德昌县| 永春县| 海兴县| 新邵县| 哈巴河县| 顺义区| 古丈县| 搜索| 孟连| 永和县| 英山县| 玉树县| 永兴县| 措勤县| 哈尔滨市| 陆河县| 兴文县|