2.pytest 命令引數
失敗後停止
使用下面的引數可以讓測試在第1(N)次測試失敗後停止:
pytest ‐x # 第一次測試失敗後停止測試
pytest ‐‐maxfail=2 # 第2次測試失敗後停止測試
修改檔案如下
# filename:test_02.py
import pytest
class TestDemo02:
def func(self, x):
return x + 1
# 修改成斷言失敗
def test_01(self):
assert self.func(3) == 14
# 修改成斷言失敗
def test_02(self):
assert self.func(3) == 5
if __name__ == '__main__':
pytest.main(['-s', '-x', 'test_02.py'])
執行後觀察結果
test_02.py F
================================== FAILURES ===================================
_____________________________ TestDemo02.test_01 ______________________________
...此處省略報錯具體原因
test_02.py:10: AssertionError
=========================== short test summary info ===========================
FAILED test_02.py::TestDemo02::test_01 - assert 4 == 14
!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!
============================== 1 failed in 0.09s ==============================
Process finished with exit code 0
可以看出,由於第一條報錯,2條用例只執行了第1條,使用‐‐maxfail=2
可以失敗兩次後停止,大家自己嘗試下。
指定執行範圍
通過test_01.py
檔案執行測試
pytest test_01.py
通過資料夾執行測試
pytest testcase
建立testcase
目錄,然後把test_02.py
移入目錄下,就像這樣
然後執行命令,可以發現只執行了test_02.py
下的用例
============================= test session starts =============================
platform win32 -- Python 3.7.1, pytest-6.0.2, py-1.9.0, pluggy-0.13.1
rootdir: D:\study\auto-pytest
collected 3 items
testcase\test_02.py FF
================================== FAILURES ===================================
_____________________________ TestDemo02.test_01 ______________________________
...此處省略報錯具體原因
testcase\test_02.py:11: AssertionError
_____________________________ TestDemo02.test_02 ______________________________
...此處省略報錯具體原因
testcase\test_02.py:15: AssertionError
=========================== short test summary info ===========================
FAILED testcase/test_02.py::TestDemo02::test_01 - assert 4 == 14
FAILED testcase/test_02.py::TestDemo02::test_02 - assert 4 == 5
!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 2 failures !!!!!!!!!!!!!!!!!!!!!!!!!!
============================== 2 failed in 0.04s ==============================
通過關鍵字表示式來進行測試
這種方式會執行檔名,類名以及函式名與給定的字串表示式相匹配的測試用例。
pytest ‐k "Demo02 and not 01"
上面的用例會執 行TestDemo02.test_02但是不會執行TestDemo02.test_01,就像這樣,另外3個沒執行
============================= test session starts =============================
platform win32 -- Python 3.7.1, pytest-6.0.2, py-1.9.0, pluggy-0.13.1
rootdir: D:\study\auto-pytest
collected 5 items / 3 deselected / 2 selected
testcase\test_02.py ..
======================= 2 passed, 3 deselected in 0.03s =======================
通過節點id來進行測試
引數化的類名、函式名和引數,用::
分隔。
可以通過下面的方式執行模組中的指定的測試用例
pytest testcase/test_02.py::TestDemo02:test_01
可以從結果看出,執行了test_02.py
內TestDemo02
類下的test_01
方法
============================= test session starts =============================
platform win32 -- Python 3.7.1, pytest-6.0.2, py-1.9.0, pluggy-0.13.1
rootdir: D:\study\auto-pytest
collected 1 item
testcase\test_02.py .
============================== 1 passed in 0.01s ==============================
通過標記來執行
pytest ‐m tag01
這種方式會執行所有通過裝飾器 @pytest.mark.tag
進行裝飾的測試用例,所以我們來修改test_02.py
檔案
# filename:test_02.py
import pytest
class TestDemo02():
def func(self, x):
return x + 1
@pytest.mark.tag01
def test_01(self):
assert self.func(3) == 4
def test_02(self):
assert self.func(3) == 4
def test_03(self):
assert self.func(3) == 4
修改後,執行得到結果,可以看出只執行了打上標記的用例,篇幅問題,結果就不貼上來了
也可以通過pytest -m "tag01 or tag02"
來執行標記為tag01和tag02的用例
相關文章
- arp命令 引數
- tasklist命令 引數
- ipconfig命令引數
- ipconfig命令 完整 引數
- Curl 命令引數解析
- lsblk命令引數詳解
- tar命令引數詳解
- Go 接收命令列引數Go命令列
- Java方法04:命令列傳遞引數、可變引數Java命令列
- SpringBoot禁用命令列引數Spring Boot命令列
- MySQL登陸命令列引數MySql命令列
- 給alias命令新增引數支援
- Linux 引數代換 命令 xargsLinux
- find 命令的引數詳解
- main命令列引數輸入AI命令列
- Python使用Argparse讀取命令引數Python
- Python命令列引數解析模組argparsePython命令列
- Day18--命令列傳遞引數命令列
- 使用argparse模組新增命令列引數命令列
- Outlook for Microsoft 365 所有命令列引數ROS命令列
- mongod命令的一些引數以及引數--pidfilepath與mongod.lock區別Go
- python獲取命令列引數的程式碼Python命令列
- [20231109]bbed p命令dba引數問題.txt
- Python測試框架pytest命令列引數用法Python框架命令列
- Rust 程式設計,讀取命令列引數Rust程式設計命令列
- 命令列引數解析模組argparse的使用命令列
- java 啟動命令 java -jar 如何追加引數JavaJAR
- linux echo命令的-n、-e兩個引數Linux
- 如何檢視docker run啟動引數命令Docker
- shell前一個命令結果作為下一個命令引數
- ABAP-BITMAP的命令引數的使用說明
- linux 檢視日誌的命令引數有哪些?Linux
- FFmpeg命令影片音訊轉碼引數詳解音訊
- Go語言命令列程式和他們的引數Go命令列
- 【C】 33_main 函式與命令列引數AI函式命令列
- Python中最好用的命令列引數解析工具Python命令列
- D7 kubernetes 容器執行命令與引數
- note1 : ubuntn 系統引數檢視命令