校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 詳解pytest實現mark標記功能詳細介紹

詳解pytest實現mark標記功能詳細介紹

熱門標簽:看懂地圖標注方法 佛山通用400電話申請 電話外呼系統招商代理 蘇州人工外呼系統軟件 淮安呼叫中心外呼系統如何 電話機器人貸款詐騙 打印谷歌地圖標注 京華圖書館地圖標注 廣東旅游地圖標注

mark標記

​在實際工作中,我們要寫的自動化用例會比較多,也不會都放在一個py文件中,如果有幾十個py文件,上百個方法,而我們只想運行當中部分的用例時怎么辦?

​pytest提供了一個非常好用的mark功能,可以給測試用例打上各種各樣的標簽,運行用例時可以指定運行某個標簽。mark功能作用就是靈活的管理和運行測試用例。

​標簽既可以打到方法上,也可以打到類上,標記的兩種方式:

  • 直接標記類或方法或函數:@pytest.mark.標簽名
  • 類屬性:pytestmark = [pytest.mark.標簽名, pytest.mark.標簽名],需要注意的是屬性名稱是固定的
import pytest


@pytest.mark.beta	# 可以給類打標簽
class TestLogin:	# 標記類

    @pytest.mark.qc
    @pytest.mark.beta	# 也可以多個標簽
    def test_login(self):	# 標記方法
        pass

@pytest.mark.smoke		# 單個標簽
def test_register():	# 標記函數
        pass

class TestClass:
    # 加一個 pytestmark的類屬性
    pytestmark = [pytest.mark.qc, pytest.mark.beta]	# 標簽存放在一個列表

pytest.main()

注冊標簽名

​我們要想運行已經打好標記的函數,還需要對標簽名進行注冊,告訴pytest有哪些標簽,如果不進行注冊運行時(pytest的高級版本)可能會報警告讓你進行注冊。

​我們只需要在項目根目錄下創建一個pytest.ini文件,注意文件名是不可修改的,否則pytest會找不到。內容格式如下:

# pytest.ini
# 只能修改=右邊的值
[pytest]	
python_files = demo_*.py	# 模塊名以demo_開頭
python_functions = demo_*	# 方法名以demo_開頭
python_classes = Demo*	# 類名名以Demo開頭

# 注冊標簽
markers =
    qc
    beta
    smoke

運行指定的標簽

通過命令行執行

​單個標簽:pytest -m "標簽名"(-m意思是執行標簽mark),不想執行某個標簽可以用not來取反,即pytest -m "not 標簽名"

​多個標簽:可以加上判斷,pytest -m "qc and beta" 或者 pytest -m "qc or beta" 效果是一樣的

​注意:標簽名一定要加雙引號,單引號是會報錯的。

通過代碼執行

​這里普及一下,main()方法是可以接收不定長參數的,因此可以把要執行的命令放在一個列表中

if __name__ == '__main__':
    pytest.main(['-m qc and beta', '-s'])	# 標簽名不需要加引號

關于pytest的指令,可以通過控制臺執行pytest --help查看,上面舉例中-s命令是指打印更加詳細的信息,如果程序運行過程當中的print()信息打印不出來,可以加上-s可選參數,它是-- capture=no的縮寫。

skip跳過標記

​在維護測試用例的過程中,可能在一個階段某些用例已經不需要了,或者在指定條件下是不需要運行的,那么我們就可以通過mark.skip跳過這些函數或者類,兩種跳過方式:

  • 直接跳過: @pytest.mark.skip(reason = “原因”) ,這里原因是可選參數
  • 條件跳過,即滿足某個條件才跳過:@pytest.mark.skipif(a == 1, reason = “原因”)
db_host = 'localhost'

@pytest.mark.skip("和現在的需求不符合")	# 不滿足當下了,或別人編寫的暫時不能刪的
def test_yuz(self):
    pass

@pytest.mark.skipif(db_host == 'localhost', reason='只測試線上環境,不測試本地環境')
def test_develop_env(self):
    pass

到此這篇關于詳解pytest實現mark標記功能詳細介紹的文章就介紹到這了,更多相關pytest mark標記 內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python的pytest框架之命令行參數詳解(上)
  • 詳解用Pytest+Allure生成漂亮的HTML圖形化測試報告
  • python pytest進階之conftest.py詳解
  • python pytest進階之fixture詳解
  • Pytest測試框架基本使用方法詳解
  • Python 測試框架unittest和pytest的優劣
  • Pytest參數化parametrize使用代碼實例
  • pytest中文文檔之編寫斷言
  • 在pycharm中文件取消用 pytest模式打開的操作

標簽:江蘇 畢節 湖州 衡水 中山 駐馬店 股票 呼和浩特

巨人網絡通訊聲明:本文標題《詳解pytest實現mark標記功能詳細介紹》,本文關鍵詞  詳解,pytest,實現,mark,標記,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解pytest實現mark標記功能詳細介紹》相關的同類信息!
  • 本頁收集關于詳解pytest實現mark標記功能詳細介紹的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 五指山市| 鹤岗市| 崇仁县| 枣庄市| 江孜县| 烟台市| 察隅县| 江华| 双江| 什邡市| 肇东市| 高邑县| 手机| 伊宁市| 肇州县| 公安县| 伊通| 依兰县| 仙游县| 安西县| 堆龙德庆县| 富蕴县| 卓尼县| 屏东市| 政和县| 夹江县| 汉川市| 松原市| 漠河县| 黎城县| 古蔺县| 嫩江县| 普宁市| 蒙阴县| 松滋市| 景洪市| 芷江| 庄浪县| 崇州市| 新兴县| 高唐县|