pytest之mark的使用


使用方法:

1、注冊標簽名

2、在測試用例/測試類前面加上:@pytest.mark.標簽名

      打標記范圍:測試用例、測試類、模塊文件

 

注冊方式:

1、單個標簽:

在conftest.py添加如下代碼:
def pytest_configure(config):
    # demo是標簽名
    config.addinivalue_line("markers", "demo:示例運行") 

2、多個標簽:   

在conftest.py添加如下代碼:
def pytest_configure(config):
    marker_list = ["testdemo", "demo", "smoke"]  # 標簽名集合
    for markers in marker_list:
        config.addinivalue_line("markers", markers)

3、添加pytest.ini 配置文件(在你項目的任意一個文件下,新建一個file,文件命名為pytest.ini)

    

[pytest]
markers=
    smoke:this is a smoke tag
    demo:demo
    testdemo:testdemo

 

使用方法:

  

import pytest


@pytest.mark.testdemo
def test_demo01():
    print("函數級別的test_demo01")


@pytest.mark.smoke
def test_demo02():
    print("函數級別的test_demo02")


@pytest.mark.demo
class TestDemo:
    def test_demo01(self):
        print("test_demo01")

    def test_demo02(self):
        print("test_demo02")

 

運行方式:

  1、命令行模式

通過標記表達式執行
pytest -m demo
這條命令會執行被裝飾器@pytest.mark.demo裝飾的所有測試用例

生成html報告:
pytest -m demo --html=Report/report.html

生成xml報告:
pytest -m demo --junitxml=Report/report.xml

運行指定模塊:
pytest -m demo --html=Report/report.html TestCases/test_pytest.py

運行指定測試目錄
pytest -m demo --html=Report/report.html TestCases/

通過節點id來運行:
pytest TestCases/test_pytest.py::TestDemo::test_demo01

通過關鍵字表達式過濾執行
pytest -k "MyClass and not method"
這條命令會匹配文件名、類名、方法名匹配表達式的用例

獲取用例執行性能數據
獲取最慢的10個用例的執行耗時
pytest --durations=10

2、新建run.py文件運行,代碼如下:

pytest.main(["-m","demo","--html=Report/report.html"])

 


免責聲明!

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



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