欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Pytest之測試命名規(guī)則的使用

 更新時間:2021年04月15日 17:07:01   作者:阿刁阿  
這篇文章主要介紹了Pytest之測試命名規(guī)則的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

背景:

pytest以特定規(guī)則搜索測試用例,所以測試用例文件、測試類以及類中的方法、測試函數(shù)這些命名都必須符合規(guī)則,才能被pytest搜索到并加入測試運行隊列中。

默認搜索規(guī)則:

  • 如果pytest命令行有指定目錄,則從該目錄中開始查找測試用例文件,如果沒有指定,則從當前運行目錄開始查找文件。注意,該查找是遞歸查找,子目錄中的文件也會被查找到。
  • 并不是能夠查找到目錄下的所有文件,只有符合命名規(guī)則的文件才會被查找。默認規(guī)則是以test_開頭或者以_test結(jié)尾的.py文件。
  • 在測試文件中查找Test開頭的類,以及類中以test_開頭的方法,查找測試文件中test_開頭的函數(shù)。

測試用例默認命名規(guī)則

  • 除非pytest命令指定到測試用例文件,否則測試用例文件命名應該以 test_開頭或者以_test結(jié)尾。
  • 測試函數(shù)命名,測試類的方法命名應該以test_開頭。
  • 測試類命名應當以Test開頭。

tips: 測試類的不應該有構(gòu)造函數(shù)。

筆者習慣裝測試用例的文件夾,測試用例文件,測試函數(shù),類中的測試方法都以test_開頭。建議保持一種統(tǒng)一的風格。

示例:

# func.py
def add(a,b):
 return a+b

# ./test_case/test_func.py
import pytest
from func import *

class TestFunc:

 #def __init__(self):
  #self.a = 1

 def test_add_by_class(self):
  assert add(2,3) == 5


def test_add_by_func():
 assert add(4,6) == 10

'''
# stdout:
============================= test session starts =============================
platform win32 -- Python 3.7.0, pytest-5.3.4, py-1.8.1, pluggy-0.13.1
rootdir: D:\Python3.7\project\pytest
plugins: allure-pytest-2.8.9, rerunfailures-8.0
collected 2 items

test_case\test_func.py ..                                                [100%]

============================== 2 passed in 0.04s ==============================
[Finished in 1.3s]
######################################################################
'''

測試結(jié)果中,test_case\test_func.py … 。兩個點號代表兩個測試用例。

錯誤示范,當測試類有構(gòu)造函數(shù)時:

# func.py
def add(a,b):
 return a+b

# ./test_case/test_func.py
import pytest
from func import *

class TestFunc:

 def __init__(self):
  self.a = 1

 def test_add_by_class(self):
  assert add(2,3) == 5


def test_add_by_func():
 assert add(4,6) == 10

'''
# stdout:
============================= test session starts =============================
platform win32 -- Python 3.7.0, pytest-5.3.4, py-1.8.1, pluggy-0.13.1
rootdir: D:\Python3.7\project\pytest
plugins: allure-pytest-2.8.9, rerunfailures-8.0
collected 1 item

test_case\test_func.py .                                                 [100%]

============================== warnings summary ===============================
test_case\test_func.py:4
  D:\Python3.7\project\pytest\test_case\test_func.py:4: PytestCollectionWarning: cannot collect test class 'TestFunc' because it has a __init__ constructor (from: test_case/test_func.py)
    class TestFunc:

-- Docs: https://docs.pytest.org/en/latest/warnings.html
======================== 1 passed, 1 warning in 0.04s =========================
[Finished in 1.4s]
######################################################################
'''

會報錯,pytest只能找到test_開頭的函數(shù),但是不能找到Test開頭的含有構(gòu)造函數(shù)的測試類。

自定義測試用例命名規(guī)則

如果因為某種需要,需要使用其他命名規(guī)則命名的測試文件、測試函數(shù)、測試類以及測試類的方法,可以通過pytest.ini配置文件做到。

在測試系統(tǒng)的頂層目錄創(chuàng)建pytest.ini文件,在pytest.ini文件中寫入如下配置:

[pytest]
# 更改測試文件命名規(guī)則
python_files = HG*

# 更改測試類命名規(guī)則
python_classes = HG*

# 更嗨測試函數(shù)命名規(guī)則
python_functions = HG*

示例:

# func.py
def add(a,b):
 return a+b

# ./test_case/HG_func.py
import pytest
from func import *

class HGFunc:

 #def __init__(self):
  #self.a = 1

 def HG_add_by_class(self):
  assert add(2,3) == 5


def HG_add_by_func():
 assert add(4,6) == 10

'''
stdout:
============================= test session starts =============================
platform win32 -- Python 3.7.0, pytest-5.3.4, py-1.8.1, pluggy-0.13.1 -- D:\Python3.7\python.exe
cachedir: .pytest_cache
rootdir: D:\Python3.7\project\pytest, inifile: pytest.ini
plugins: allure-pytest-2.8.9, rerunfailures-8.0
collecting ... collected 2 items

test_case/HG_func.py::HGFunc::HG_add_by_class PASSED                     [ 50%]
test_case/HG_func.py::HG_add_by_func PASSED                              [100%]

============================== 2 passed in 0.03s ==============================
[Finished in 1.3s]
'''

Tips:

  • pytest.ini是可以改變pytest運行方式的配置文件,但是正常情況下,測試系統(tǒng)里根本不需要存在pytest.ini文件,我們使用默認的運行方式即可工作。
  • pytest.ini還有許多其他個性化配置,當有需要時,可以在自動化測試項目的頂層目錄里創(chuàng)建pytest.ini文件,添加配置,達到個性化運行的目的。

到此這篇關于Pytest之測試命名規(guī)則的使用的文章就介紹到這了,更多相關Pytest 命名規(guī)則內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Django Session和Cookie分別實現(xiàn)記住用戶登錄狀態(tài)操作

    Django Session和Cookie分別實現(xiàn)記住用戶登錄狀態(tài)操作

    這篇文章主要介紹了Django Session和Cookie分別實現(xiàn)記住用戶登錄狀態(tài)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Django后端發(fā)送小程序微信模板消息示例(服務通知)

    Django后端發(fā)送小程序微信模板消息示例(服務通知)

    今天小編就為大家分享一篇Django后端發(fā)送小程序微信模板消息示例(服務通知),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python實現(xiàn)ip地址的包含關系判斷

    python實現(xiàn)ip地址的包含關系判斷

    這篇文章主要介紹了python實現(xiàn)ip地址的包含關系判斷,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • Python學習之基礎語法介紹

    Python學習之基礎語法介紹

    大家好,本篇文章主要講的是Python學習之基礎語法介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • tensorflow求導和梯度計算實例

    tensorflow求導和梯度計算實例

    今天小編就為大家分享一篇tensorflow求導和梯度計算實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 詳解python的webrtc庫實現(xiàn)語音端點檢測

    詳解python的webrtc庫實現(xiàn)語音端點檢測

    這篇文章主要介紹了詳解python的webrtc庫實現(xiàn)語音端點檢測,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Python Scrapy多頁數(shù)據(jù)爬取實現(xiàn)過程解析

    Python Scrapy多頁數(shù)據(jù)爬取實現(xiàn)過程解析

    這篇文章主要介紹了Python Scrapy多頁數(shù)據(jù)爬取實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • 一文詳解Python中哈希表的使用

    一文詳解Python中哈希表的使用

    哈希表或稱為散列表,是一種常見的、使用頻率非常高的數(shù)據(jù)存儲方案。本文將站在開發(fā)者的角度,帶著大家一起探究哈希的世界,感興趣的小伙伴可以跟隨小編一起學習一下
    2022-05-05
  • Python 實現(xiàn)二叉查找樹的示例代碼

    Python 實現(xiàn)二叉查找樹的示例代碼

    這篇文章主要介紹了Python 實現(xiàn)二叉查找樹的示例代碼,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • Python繪圖庫之pyqtgraph的用法詳解

    Python繪圖庫之pyqtgraph的用法詳解

    PyQtGraph建立在Qt QGraphicsScene的原生庫,可提供更好更高性能繪圖能力,特別是對于實時數(shù)據(jù),可以提供交互性和使用Qt圖形小部件輕松自定義繪圖的能力。本文就來解釋一下pyqtgraph的用法,需要的可以收藏一下
    2022-12-12

最新評論