pytest自定義mark
阿新 • • 發佈:2020-12-02
1、pytest可以支援自定義標記,自定義標記可以把一個web專案劃分為多個模組,然後指定模組名稱去執行。APP自動化的時候,如果想Android和IOS共用一套程式碼時,也可以使用標記功能。標明那些是IOS用例,那些是Android用例,執行時指定mark名稱執行。
mark標記:
例如這個用例test_send_http()被標記為為 webtest,執行時指定webtest標記。
import pytest @pytest.mark.webtest def test_01(): print('test case 1') def test_02(): print('test case 2') def test_03(): print('test case 3') class TestClass: def test_method(self): pass if __name__=='__main__': pytest.main(['-s','test_sample.py', '-m=webtest'])
命令列執行:
pytest -v -m webtest
如果要執行除webtest以外的就用“ not webtest”
pytest -v -m "not webtest"
2、-v 按照指定的節點id來執行測試
如果想知道執行某個.py模組下,一個類中的一個用例。如testclass類中的test_01()用例,用例的名稱就是用例的節點id。指定節點id 執行用 -v 引數:
pytest -v test_sample.py::TestClass::test_01
另外也可以執行整個class的用例:
pytest -v test_sample.py::TestClass
也能選擇多個節點執行,多個節點中間用空格區分:
pytest -v test_sample.py::TestClass test_sample.py::test_send_http
3、引數 -k 安裝用例名稱關鍵字執行
可以使用-k命令列引數指定匹配某些符合表示式的用例:
pytest -v -k http
也可以執行所有的測試,根據用例名稱排除掉某些用例:
pytest -k "not send_http" -v
也可以同時匹配兩個關鍵字:
pytest -k "http or quick" -v