pytest之mark的使用

使用方法:html

一、註冊標籤名函數

二、在測試用例/測試類前面加上:@pytest.mark.標籤名性能

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

 

註冊方式:this

一、單個標籤:spa

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

二、多個標籤:   命令行

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

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

    

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

 

使用方法:xml

  

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")

 

運行方式:htm

  一、命令行模式

經過標記表達式執行
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

二、新建run.py文件運行,代碼以下:

pytest.main(["-m","demo","--html=Report/report.html"])
相關文章
相關標籤/搜索