1. 准备测试环境
在Debian系统上测试Python项目前,需先配置基础环境和工具:
sudo apt update && sudo apt upgrade确保系统软件包为最新版本。python3 --version验证安装;若未安装,执行sudo apt install python3 python3-pip安装。pip是Python包管理工具,用于安装测试框架(如pip3 install pytest)。venv模块创建隔离环境:python3 -m venv myenv(myenv为虚拟环境目录名);激活环境:source myenv/bin/activate(激活后终端提示符会显示环境名)。2. 编写测试用例
根据项目需求选择测试框架(unittest为Python标准库,pytest为第三方框架,功能更强大):
tests/test_my_module.py文件(目录名tests为约定,便于自动发现),编写继承自unittest.TestCase的测试类,使用断言方法(如assertEqual)验证函数逻辑:import unittest
from my_module import add # 假设被测试函数在my_module.py中
class TestMyModule(unittest.TestCase):
def test_add_positive_numbers(self):
self.assertEqual(add(2, 3), 5)
def test_add_negative_numbers(self):
self.assertEqual(add(-1, -1), -2)
tests/test_my_module.py,直接编写以test_开头的函数,使用assert语句验证结果(更简洁):from my_module import add
def test_add_positive_numbers():
assert add(2, 3) == 5
def test_add_negative_numbers():
assert add(-1, -1) == -2
my_project/
├── my_module.py # 被测试的Python模块
└── tests/ # 测试目录
├── __init__.py # 可选,标识tests为Python包
└── test_my_module.py
```。
3. 运行测试
根据使用的框架选择对应的运行命令:
python3 -m unittest tests/test_my_module.py(需指定测试文件路径)。tests目录下所有测试:python3 -m unittest discover tests(discover命令会递归查找tests目录下的测试文件)。pytest tests/test_my_module.py。tests目录下所有符合命名规范(以test_开头或_test.py结尾)的测试:pytest tests/(无需指定具体文件,更便捷)。pytest-html插件):pytest --html=report.html(报告保存在当前目录)。4. 查看与调试测试结果
Ran 2 tests in 0.001s),显示OK(全部通过)或FAIL(有测试失败);失败时会输出详细的错误信息(包括预期值与实际值的差异)。pdb:在测试代码中插入import pdb; pdb.set_trace(),运行测试时会进入交互式调试模式,可查看变量值、单步执行代码。5. 可选:集成持续集成(CI)
为实现测试自动化(每次代码提交后自动运行测试),可将项目与CI工具集成:
.github/workflows/python-tests.yml文件,配置测试流程(如使用Ubuntu环境、安装依赖、运行pytest):name: Python Tests
on: [push, pull_request] # 触发条件:代码推送或拉取请求
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3 # 拉取代码
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10' # 指定Python版本
- name: Install dependencies
run: |
python3 -m pip install --upgrade pip
pip3 install -r requirements.txt # 安装项目依赖
pip3 install pytest # 安装pytest
- name: Run tests
run: pytest # 运行测试