pytest 可以靈活的挑選測試用例執行
指定一個模塊
如下:
pytest cases\Login\test_錯誤登錄.py
指定目錄
可以像這樣只挑選一個目錄執行
pytest cases
也可指定多個目錄
pytest case1 case2\Login
指定模塊里面的函數或者類
指定一個類
pytest cases\Login\test_錯誤登錄.py::Test_錯誤密碼
也可以指定類里面的方法
pytest cases\Login\test_錯誤登錄.py::Test_錯誤密碼::test_c001001
根據名字
可以使用命令行參數 -K 后面加名字來挑選要執行的測試項
比如:
pytest -k C001001 -s
注意,-k 后面的名字
-
可以是測試函數的名字,可以是類的名字,可以是模塊文件名,可以是目錄的名字
-
是大小寫敏感的
-
不一定要完整,只要能有部分匹配上就行
-
可以用 not 表示選擇名字中不包含,比如: pytest -k "not C001001" -s
-
可以用 and 表示選擇名字同時包含多個關鍵字,比如: pytest -k "錯 and 密碼2" -s
-
可以用 or 表示選擇名字 包含指定關鍵字之一即可,比如: pytest -k "錯 or 密碼2" -s
根據標簽
可以這樣給 某個方法加上標簽 webtest
import pytest
class Test_錯誤密碼3:
@pytest.mark.webtest
def test_C001021(self):
print('\n用例C001021')
assert 1 == 1
運行指定標簽的用例
pytest cases -m webtest
也可以給整個類加上方法
import pytest
@pytest.mark.webtest
class Test_錯誤密碼3:
def test_C001021(self):
print('\n用例C001021')
assert 1 == 1
也是支持中文的
import pytest
@pytest.mark.網頁測試
class Test_錯誤密碼3:
def test_C001021(self):
print('\n用例C001021')
assert 1 == 1
運行命令指定的標簽
pytest cases -m 網頁測試 -s
可以這樣定義一個全局變量 pytestmark 為 整個模塊文件
設定標簽
import pytest
pytestmark = pytest.mark.網頁測試
@pytest.mark.網頁測試
class Test_錯誤密碼3:
def test_C001021(self):
print('\n用例C001021')
assert 1 == 1