4.pytest 之 skip 跳過
pytest.mark.skip 可以用於標記某些不想執行的測試用例。
建立test_04.py
檔案,內容如下
# filename:test_04.py
import pytest
class TestDemo01():
@pytest.mark.skip(reason='我要跳過')
def test_01(self):
print('\ntest_01方法執行')
assert 1 == 1
def test_02(self):
print('\ntest_02方法執行')
assert 1 == 1
def test_03(self):
print('\ntest_03方法執行')
assert 1 == 1
這樣,被標記的方法test_01
將不會被執行,也可以在程式碼執行過程中直接呼叫pytest.skip(reason)
來強制跳過,我們修改test_02
方法如下
def test_02(self):
if 2 > 1:
pytest.skip("2>1才跳過")
print('\ntest_02方法執行')
assert 1 == 1
執行 pytest -s test_04.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
test_04.py ss
test_03方法執行
.
======================== 1 passed, 2 skipped in 0.06s =========================
還可以使用pytest.skip(reason, allow_module_level=True)
來跳過整個 module,只需要在頂部加入:
if 2>1:
pytest.skip('跳過整個模組',allow_module_level=True)
這樣,只要條件為 True,那麼整個模組下的測試用例將不會執行。
skipif
你可以使用 skipif 來在某些條件下跳過測試。 下面是一個在檢查 python 的版本是否高於 3.6 的示例:
class TestDemo01():
@pytest.mark.skipif(sys.version_info > (3, 6), reason='python版本大於3.6就跳過')
def test_01(self):
print('\ntest_01方法執行')
assert 1 == 1
def test_02(self):
print('\ntest_02方法執行')
assert 1 == 1
如果 python 安裝版本大於 3.6,則 test_01 方法不會執行。
你可以在各個模組中共享 skipif 標記,比如有下面的模組定義:
import pytest
import sys
maxversion = pytest.mark.skipif(sys.version_info > (3, 6), reason='python版本大於3.6就跳過')
class TestDemo01():
@maxversion
def test_01(self):
print('\ntest_01方法執行')
assert 1 == 1
def test_02(self):
print('\ntest_02方法執行')
assert 1 == 1
使用定義好的maxversion
作為方法裝飾器,則對應的用例將不會執行。
如果其他模組也會用到相同條件的跳過,可以從別的模組匯入,你可以這樣寫
# filename: test_skip.py
from test_04 import maxversion
@maxversion
def test_function():
.....
跳過模組或者 class 中的所有測試
你可以在 class 上使用 skipif 標記:
@pytest.mark.skipif(sys.version_info > (3, 6), reason='python版本大於3.6就跳過')
class TestDemo01():
def test_01(self):
print('test_01被執行')
如果要跳過模組的所有測試功能,可以在全域性級別使用 pytestmark 名稱
pytestmark = pytest.mark.skipif(sys.version_info > (3, 6), reason='python版本大於3.6就跳過')
相關文章
- MySQL複製跳過錯誤--slave_skip_errors、sql_slave_skip_counter、slave_exec_modeMySqlError
- 【Java 8 新特性】Java Stream 通過skip()方法跳過前N個子元素Java
- 5.6 GTID 啟用情況下, 從庫跳過一個事物的方法 sql_slave_skip_counter 失效.SQL
- puppeteer安裝過程中出現:Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOA D" env variable to skip download.
- win10系統通過修改登錄檔開啟加入Skip Ahead跳躍預覽計劃的方法Win10
- win10系統透過修改登錄檔開啟加入Skip Ahead跳躍預覽計劃的方法Win10
- tidb之dm叢集跳過某個事務實踐TiDB
- slave-skip-errorsError
- MySQL 跳過同步錯誤MySql
- mysqld --skip-grant-tablesMySql
- sql_slave_skip_counterSQL
- win10 如何跳過建立pin win10 如何跳過設定pinWin10
- maven 設定跳過測試Maven
- maven install 跳過測試類Maven
- GitHub Actions 支援 "skip ci" 了Github
- angular之RouterLink花式跳轉Angular
- Jenkins如何跳過sonar執行CIJenkins
- SourceTree跳過註冊安裝使用
- eclipse maven打包 跳過junit測試EclipseMaven
- Ijkplayer skip_frame 什麼意思?
- PostgreSQL DBA(81) - Locks(FOR UPDATE SKIP LOCKED)SQL
- the --skip-grant-tables option so it cannot
- 資料結構之跳錶資料結構
- 重灌win10過程怎樣跳過建立賬戶 重灌win10系統跳過建立賬戶的教程Win10
- 明日之後如何從營地快速回家?明日之後怎麼跳過營地纜車動畫動畫
- CRSF過期,錯誤跳轉(記錄)
- maven怎樣跳過測試階段Maven
- window版Sourcetree跳過註冊的方法
- Android 跳轉過後關閉本介面Android
- win10安裝怎麼跳過登入_win10安裝怎麼跳過建立賬戶Win10
- Pytest學習(七) - skip、skipif的使用
- 幀間預測merge、skip、PCM模式模式
- [20180725]index skip-scan operation.txtIndex
- C# 介面跳轉-登陸之後跳轉至主視窗C#
- react-router原理之Link跳轉React
- 跳過微信過低版本的解決辦法 3.6.0.18
- win10安全模式如何跳過開機密碼_win10安全模式跳過開機密碼教程Win10模式密碼
- iOS 支付前登入要有跳過選項iOS