pytest按tag動態挑選測試用例

pytest是個成熟全套的 python 自動化測試工具。單元測試,功能測試、接口自動化測試中都可應用;與 unittest相比,它能支持更多、更全面的功能,同時也具有更多特點和優點,能夠參考以前同窗發佈的文章。python

動態挑選測試用例一直是測試框架使用的必要功能,好比執行冒煙case進行預測試,針對開發對改動模塊進行測試等,根據需求不一樣的測試階段或測試範圍內動態調整執行對應的case。在 pytest 裏能夠按照tag或者按文件動態挑選測試用例,下面簡單介紹一下按tag動態挑選用例。微信

須要如下兩個步驟:框架

1.首先給測試用例打標籤(mark),在class、method 上加上以下格式裝飾器,以下面簡單示例:函數

@pytest.mark.xxx工具

執行class中的用例
單元測試

執行函數中的用例
測試

執行class中的函數this

2.在運行時,命令行動態指定標籤運行:spa

# 同時選中帶有這兩個標籤的全部測試用例運行.net

pytest -m "mark1 and mark2"

# 選中帶有mark1或 mark2標籤的全部測試用例

pytest -m "mark1 or mark2"

# 選中帶有mark1的測試用例,不運行mark2的測試用例

pytest -m "mark1 and not mark2" 

下面用命令行執行-v查看執行詳細信息,使用以上規則執行,能夠看到沒有同時知足important和smoke的用例,important且unrun的用例一條,smoke或unrun的用例兩條,important但不是un的用例一條,且執行結果如標籤內容

在執行-m 參數 mark 標記的用例時,pytest 會發出告警信息 「PytestUnknownMarkWarning: Unknown pytest.mark.login - is this a typo? 」如

這是一個 pytest 未知的一個標記,爲了消除告警,須要在 pytest的配置文件中註冊 mark 標記。

註冊 mark 標記:

首先在項目根目錄建立一個文件pytest.ini ,這個是 pytest 的配置文件;

而後在 pytest.ini 文件的markers 中寫入 mark 標記, 冒號 「:」 前面是標記名稱,後面是 mark 標記的說明,能夠是空字符串;

注意:pytest.ini文件中只能使用純英文字符,絕對不能使用中文的字符(尤爲是冒號和空格)!

 

註冊完 mark 標記以後 pytest 便不會再告警。注意:pytest.ini 配置文件不支持註釋

[pytest]

markers =testclass   : 'marks tests as classlevel'

    smoke : 'marks tests as smoke'

    important : 'marks tests as important'

    unrun : 'marks tests as not to run'

 


本文分享自微信公衆號 - 搜狗測試(SogouQA)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索