pytest 13 使用自定義標記mark

2022-06-17 12:06:09 字數 2988 閱讀 5082

前言:

pytest可以規定那些要跑,那些不跑,跑特定的哪些?比如以下的這個例子:

#

!/usr/bin/env/python

#-*-coding:utf-8-*-

import

pytest

@pytest.mark.runtest

deftest_run():

print("

run"

)def

test_not_run():

pass

deftest_not_run1():

pass

class

testclass:

deftest_method(self):

pass

if__name__ == "

__main__":

pytest.main(["-s

", "

test_case.py

", "

-m=runtest

"]) #代表只跑標識為runtest的case

執行結果:顯示乙個執行,3個沒有被選擇

testing started at 13:56...

/usr/local/bin/python3.7 "

*************************==== test session starts ******************************platform darwin -- python 3.7.0, pytest-3.9.1, py-1.7.0, pluggy-0.8.0

rootdir: /users/newcomer/gitbymyself, inifile:

plugins: datadir-1.2.1, allure-adaptor-1.7.10collected 4 items / 3deselected

[100%]

******************** 1 passed, 3 deselected in 0.01 seconds ********************

只執行用runcase標記的測試,cmd執行的時候,加個-m 引數,指定引數值runcase

如果不想執行runcase標記的case的時候,只需要在配置裡面新增乙個not runcase,比如以下:

執行結果:三個執行完,乙個沒有被選擇

testing started at 14:11...

/usr/local/bin/python3.7 "

-m=not runtest

"*************************==== test session starts ******************************platform darwin -- python 3.7.0, pytest-3.9.1, py-1.7.0, pluggy-0.8.0

rootdir: /users/newcomer/gitbymyself, inifile:

plugins: datadir-1.2.1, allure-adaptor-1.7.10collected 4 items / 1deselected

.run

. [100%]

******************** 3 passed, 1 deselected

in 0.02 seconds ********************process finished with exit code 0

cmd命令:pytest -v -m 「not runtest」

-v 注定的函式節點id:

如果想指定執行某個.py模組下,類裡面的乙個用例,如:testclass裡面testmethod用例

每個test開頭(或_test結尾)的用例,函式(或方法)的名稱就是用例的節點id,指定節點id執行用-v 引數

$ pytest -v test_server.py::testclass::test_method

當然也能選擇執行整個class

$ pytest -v test_server.py::testclass

也能選擇多個節點執行,多個節點中間空格隔開

-k配皮用例名稱

可以使用-k命令列選項指定在匹配用例名稱的表示式

pytest -v -k not_run

也可以執行所有的測試,根據用例名稱排除掉某些用例:

pytest  -k 「not not_run」 -v

也可以同時選擇匹配 「run」 和「not not_run」

pytest  -k 「run and not not_run」 -v

pytest九 使用自定義標記 mark

mark 標記 以下用例,標記 test send http 為 webtest v指定的函式節點id 如果想指定執行某個.py 模組下,類裡面的乙個用例,如 testclass裡面 test 開頭 或 test 結尾 的用例,函式 或方法 的名稱就是用例的節點 id,指定節點 id 執行用 v 引...

pytest教程之自定義mark

實際的自動化測試專案中,我們的用例通常會放在多個py檔案中,如果我們只想執行其中部分用例,該怎麼做呢?pytest提供的mark功能能夠幫助我們解決這個問題。下面看具體做法。pytest markers you this is you me this is metest a.py中 用例 impor...

13 自定義類STOCK

stock.h ifndef stock00 h define stock00 h include string class stock class declaration 作用域 為整個類的常量,不能有型別名 static const int four 4 作用域 為整個類的常量,該常量在靜態儲存...