1. 準備Python環境
在Debian上測試Python前,需確保系統已安裝Python及必要工具。首先更新包列表:sudo apt update
;然后安裝Python 3(Debian通常預裝Python 3,可通過python3 --version
驗證):sudo apt install python3
;若未安裝unittest
(Python標準庫,用于編寫測試),可運行sudo apt install python3-unittest
;若需使用更現代的pytest
框架,通過pip安裝:pip3 install pytest
。
2. 編寫測試用例
測試用例是驗證代碼功能的核心。以一個簡單的my_module.py
(包含add
和subtract
函數)為例,創建對應的測試文件test_my_module.py
。
import unittest
from my_module import add, subtract
class TestMyModule(unittest.TestCase):
def test_add(self):
self.assertEqual(add(1, 2), 3) # 驗證1+2=3
self.assertEqual(add(-1, 1), 0) # 驗證-1+1=0
def test_subtract(self):
self.assertEqual(subtract(3, 2), 1) # 驗證3-2=1
self.assertEqual(subtract(0, 0), 0) # 驗證0-0=0
if __name__ == '__main__':
unittest.main()
from my_module import add, subtract
def test_add():
assert add(1, 2) == 3 # 斷言1+2=3
assert add(-1, 1) == 0 # 斷言-1+1=0
def test_subtract():
assert subtract(3, 2) == 1 # 斷言3-2=1
assert subtract(0, 0) == 0 # 斷言0-0=0
注意:測試文件名需以test_
開頭(如test_my_module.py
),函數名需以test_
開頭(如test_add
),以便框架自動識別。3. 運行測試
python3 -m unittest test_my_module.py
python3 test_my_module.py
pytest test_my_module.py
(測試單個文件);或pytest
(自動搜索當前目錄及子目錄下所有符合命名規范的測試文件)。pytest
還會提供更詳細的失敗堆棧跟蹤,幫助快速定位問題。4. 使用虛擬環境(推薦)
為避免項目依賴沖突(如不同項目需不同版本的庫),建議使用虛擬環境隔離依賴。
python3 -m venv myenv
(myenv
為虛擬環境目錄名,可自定義);source myenv/bin/activate
(激活后,終端提示符會顯示虛擬環境名稱);pip install pytest
(或其他所需庫);deactivate
(輸入該命令即可退出)。5. 可選:集成持續集成(CI)
若項目需要自動化測試(如每次代碼提交后自動運行測試),可集成CI工具(如GitHub Actions、GitLab CI)。以GitHub Actions為例,需在項目根目錄創建.github/workflows/test.yml
文件,配置如下:
name: Python Tests
on: [push, pull_request] # 觸發條件:代碼推送或拉取請求
jobs:
test:
runs-on: ubuntu-latest # 使用Ubuntu環境
steps:
- uses: actions/checkout@v3 # 拉取代碼
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.x' # 指定Python版本
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest # 安裝pytest
- name: Run tests
run: pytest # 運行測試
配置完成后,每次代碼提交或拉取請求時,GitHub Actions會自動觸發測試流程,并在頁面顯示測試結果。