当前位置:首页>排行榜>Python 学习第 61 课:小评测集

Python 学习第 61 课:小评测集

  • 更新时间 2026-10-11 12:31:46
Python 学习第 61 课:小评测集
欢迎搜索并关注微信公众号「新时代程序员」,持续更新AI知识、就业转型与学习干货。关注后不错过后续更新哦~

本课聚焦于为 Python 项目编写 小评测集(单元测试),帮助读者在学习过程中快速验证代码正确性,养成严谨的开发习惯。我们会介绍最小可运行的 unittest 示例、pytest 入门要点、以及如何在本系列课程的每个练习后配套编写对应测例。

今日重点(Top 3)

• 什么是小评测集,为什么每个练习都需要配套测试。

• unittest 与 pytest 的快速上手示例。

• 将评测集集成到 CI(GitHub Actions)中的基础思路。

1. 小评测集的意义与基本结构

小评测集是针对单个功能或模块编写的 少量、聚焦 的测试,用来捕捉最常见的错误场景。与完整的项目级测试相比,它们具备:

• 轻量:几行代码即可覆盖关键路径。

• 即时:在本地运行几毫秒即可得到反馈。

• 可读:示例代码本身即是学习材料。

典型的 unittest 测试文件结构(test_example.py):

import unittestfrom example import addclassTestAdd(unittest.TestCase):deftest_positive(self):self.assertEqual(add(1, 2), 3)deftest_negative(self):self.assertEqual(add(-1, -2), -3)if __name__ == "__main__":unittest.main()

要点:

• 每个 test_ 方法只测试一种行为。

• 使用 assertEqual、assertRaises 等断言检查预期结果。

• 文件名必须以 test_ 开头,便于自动发现。

2. pytest 的超简写风格

pytest 省掉了类的声明,直接使用函数。

import pytestfrom example import dividedeftest_divide_normal():assertdivide(6, 2) == 3deftest_divide_zero():with pytest.raises(ZeroDivisionError):divide(1, 0)

关键优势:

• 自动发现 test_ 前缀的函数。

• 更少的 boilerplate,特别适合学习阶段的短练习。

• 丰富的插件 ecosystem(如 pytest-cov、pytest-mock),后续可以逐步探索。

3. 将评测集放入 CI(最小化)

即便是个人项目,也可以借助 GitHub Actions 在每次 push 时自动运行测试,防止代码回退引入错误。下面是一个极简的 workflow(.github/workflows/ci.yml):

name: CIon: [push, pull_request]jobs:test:runs-on: ubuntu-lateststeps:• uses: actions/checkout@v3• name: Set up Pythonuses: actions/setup-python@v5with:python-version: '3.12'• name: Install depsrun: |python -m pip install --upgrade pippip install -r requirements.txtpip install pytest• name: Run testsrun: pytest -q

提示:首次使用时,只需要把上述文件放入仓库根目录的 .github/workflows/,GitHub 会自动创建运行记录。

动手练一练

1. 为本课的 add(a, b) 示例函数编写 unittest 测试,覆盖正数、负数以及异常情况(如非数字输入)。

2. 用 pytest 重写上述测试,尝试使用 @pytest.mark.parametrize 合并相似测试用例。

3. 创建一个本地 ci.yml(不必推送),运行 pytest 并确认所有用例通过,然后尝试在本机模拟 CI 失败(例如把 add 实现故意写错),观察测试报告变化。

小结

• 小评测集是 快速、聚焦 的单元测试,帮助在每次练习后立即验证代码。

• unittest 适合传统项目结构,pytest 更轻量、易读,推荐在学习阶段使用后者。

• 将评测集接入 CI 是 防止回退错误 的第一步,后续项目可在此基础上逐步扩展更完整的测试体系。

下一课预告

下一课(第 62 课:费用粗算与限流) 将讲解如何估算 LLM 调用的 token 成本、设置请求限流以及在预算超限时的自动降级策略。重点包括:

• 使用 tiktoken 统计 token 数量。

• 基于费用模型的预算控制实现。

• 限流中间件(令牌桶)在并发请求中的使用。

欢迎搜索并关注微信公众号「新时代程序员」,持续更新AI知识、就业转型与学习干货。关注后不错过后续更新哦~

随机文章