在編寫Python代碼的過程中,測試是至關重要的一步。測試不僅可以檢查代碼的正確性,還可以幫助我們發現潛在的問題並改善代碼的可維護性和可讀性。這篇文章將會介紹用pytest命令行測試您的Python代碼的最佳實踐,讓您的測試更加高效、方便。
一、安裝 pytest
在開始用pytest命令行測試您的Python代碼之前,您需要先安裝pytest。安裝 pytest 有兩種方式,第一種是使用pip安裝,這是最簡單和最流行的方式,只需在命令行中輸入以下代碼即可:
pip install pytest
第二種方式是通過conda進行安裝,輸入以下代碼:
conda install -c anaconda pytest
如果您使用anaconda,這種方式可能更方便。兩種方式都可以達到同樣的目的,都能成功安裝 pytest 。
二、創建測試文件
一般來說,我們會將測試代碼放在和被測代碼同級目錄下的 test/ 目錄中。在該目錄下創建一個名為test_*.py的文件,以 test_ 開頭並以 .py 結尾,*是你要測試的文件的名稱。比如,如果你要測試一個叫做 helloworld.py 的文件,那麼你應該創建一個名為 test_helloworld.py 的測試文件。 這個文件將包含所有的測試代碼。
我們來看一個例子。我們有一個名為 math.py 的模塊,其中包含幾個基本函數。現在我們想要為這個模塊編寫測試代碼,以確保這些函數能夠按照預期工作。首先,我們需要創建一個test_math.py的文件。以下是示例代碼:
import math
def test_add():
assert math.add(1, 1) == 2
assert math.add(5, 6) == 11
assert math.add(0, 0) == 0
def test_subtract():
assert math.subtract(2, 1) == 1
assert math.subtract(6, 5) == 1
assert math.subtract(0, 0) == 0
def test_multiply():
assert math.multiply(3, 4) == 12
assert math.multiply(2, 5) == 10
assert math.multiply(0, 0) == 0
def test_divide():
assert math.divide(8, 2) == 4
assert math.divide(6, 3) == 2
assert math.divide(5, 0) == None
在這個例子中,我們為 math.py 文件中的每個函數編寫了一個測試函數。每個測試函數都包含多個斷言,以檢查函數是否按預期工作。如果斷言失敗,則表示函數不能正常工作。pytest將列印錯誤信息以告訴你問題出在哪裡。
三、運行測試
在編寫完測試代碼後,我們要運行測試。運行測試時,我們需要在test目錄下打開終端並輸入以下代碼:
pytest
運行後,pytest將搜索所有符合測試文件命名約定(以 test_ 開頭,以 .py 結尾的文件)的文件並運行其中的測試代碼。如果測試代碼沒有問題,則測試將通過,否則將輸出錯誤信息。
例如,我們在上一步的例子中編寫了 test_math.py 文件。 讓我們在test目錄下運行 pytest:
pytest
如果所有測試都通過,您將看到下列輸出信息:
============================= test session starts ==============================
platform linux -- Python 3.x.y, pytest-6.x.y, py-1.x.y, pluggy-1.x.y
rootdir: /path/to/test/directory
collected x items
test_math.py ... [100%]
============================== x passed in y.yz s ==============================
這裡,「x」是測試函數數,「y.yz」是所有測試函數的總運行時間。此外,點(「.」)表示一項測試通過,表示一項測試失敗的F失敗
四、pytest命令行選項
Pytest提供了許多命令行選項,其中一些選項可以幫助您更好地控制測試行為。以下是一些最常用的 pytest 命令行選項:
–verbose:顯示測試用例的詳細信息,包括每個測試用例的名稱。
–failed-first:監測並先運行歷史失敗的用例
–maxfail=num:在遇到指定數量的測試失敗後停止測試。
–pdb:當測試失敗時啟動Python調試器。
其他有用的pytest命令行選項可以通過運行pytest –help查看。
五、結論
使用pytest來測試您的Python代碼是一種簡單而有效的方法。它可以幫助您編寫更好、更健壯的代碼,並快速發現問題。 通過遵循本文中的最佳實踐,您可以在測試代碼方面更加熟練地運用pytest。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/277386.html