如何在 pytest 中執行測試方法而不報告為透過或失敗?


我們可以使用 pytest 執行測試方法而不將其報告為透過或失敗。此測試方法通常用作先決條件。Pytest 是 Python 中的一個測試框架。要安裝 pytest,我們需要使用命令 **pip install pytest**。安裝後,我們可以使用命令 **pytest –version** 驗證 Python 是否已安裝。應該知道 pytest 的版本。

Pytest 可用於建立和執行測試用例。它可用於廣泛的測試,例如 API、UI、資料庫等等。pytest 的測試檔案有一個命名約定,即以 **test**_ 開頭或以 _**test** 結尾,並且每一行程式碼都應該在一個方法內,該方法的名稱應該以 **test** 關鍵字開頭。此外,每個方法都應該具有唯一的名稱。

為了列印控制檯日誌,我們需要使用命令 **py.test –v –s**。同樣,如果我們想從特定的 pytest 檔案執行測試,命令是 **py.test <檔名> -v**。

Pytest 提供了在測試方法上使用標記的功能。標記用於為測試方法提供屬性。一些預設標記是 skip、xfail 和 parametrize。此外,根據我們的需要,可以有更多自定義的標記。

在某些情況下,由於應用程式中的已知錯誤或某個特定功能仍在開發中,測試方法可能會失敗。但是該測試方法不能從執行中排除,因為它有一些前提條件。pytest 測試框架提供了在不報告為透過或失敗的情況下執行測試方法的選項,方法是使用 **xfail** 標記。

xfail 標記與測試方法關聯,語法如下:**@py.test.mark.xfail**。此外,要使用標記,我們必須將 **import pytest** 新增到我們的測試檔案。

讓我們考慮一個包含測試方法的 pytest 檔案。

import pytest
@pytest.mark.loan
@pytest.mark.xfail
def test_CalculateLoan():
   print("Loan calculation")
def test_CalculateLease():
   print("Lease calculation")

讓我們考慮另一個包含測試方法的 pytest 檔案。

import pytest
@pytest.mark.loan
@pytest.mark.xfail
def test_CalculateRepay():
   print("Loan calculation")
def test_FindLease():
   print("Lease search")

現在,要執行所有測試用例,我們需要使用命令 **py.test –v**。帶有 **xfail** 標記的測試方法將包含在執行中。在這種情況下,**CalculateLoan()** 和 **CalculateRepay()** 將包含在執行中,但在執行後將不會報告透過/失敗的結果。

更新於:2020年7月29日

367 次瀏覽

啟動您的 職業生涯

完成課程後獲得認證

開始學習
廣告