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会自动触发测试流程,并在页面显示测试结果。