挑战课程 · 任一编码 Agent + pytest

pytest 实战闭环——写得出抓得住 bug 的测试

一门挑战课程——给定正确的库和一个预埋 bug 的变体,写出一套 pytest 套件(fixture、parametrize、raises):在参考实现上全过,在 bug 变体上必须挂。抓不住 bug 的套件不算套件。

进阶5 个挑战1–2 hours完成基础路线者Pro(订阅)课程徽章:抓得住 bug 的套件审核于 2026-09-12中文 + EnglishPro

把这一句话粘贴给你的 Agent,即可开始:

Read https://flypython.com/skills/flypython/SKILL.md and start the FlyPython course `dt-pytest`.

需要一个能执行命令并联网的编码 Agent(纯网页聊天 AI 做不了)。Agent 会用一次性授权链接为你授权、 自己取回课程文件——你不需要下载任何东西。 还没装 FlyPython Skill选你工具对应的工具课 →

概览

学到什么一套 pytest 套件:在正确实现上全过、在预埋 bug 变体上至少报出 4 个失败——包含 fixture、参数化用例与异常断言。
适合谁完成基础路线者 · PATH 中有 Python 3.11 或更新版本
时长与费用1–2 hours · Pro 订阅

题目

五课,每课一个检查点

每课都以一条要运行的命令和必须脱稿回答的问题收尾。English syllabus →

01

抓不住 bug 的套件不算套件

对 starter 的薄弱套件跑契约,看懂为什么两个绿测试什么都证明不了。

检查点 + 预期证据
02

先定义套件必须证明什么

列出值得锚定的行为——在让 Agent 生成测试代码之前。

检查点 + 预期证据
03

写出真正的套件

替换 starter 套件:fixture、参数化用例、异常断言——直到契约通过。

检查点 + 预期证据
04

证明它抓得住 bug

契约会把你的套件跑在 bug 变体上——抓到的 bug 少于四个就是失败。

检查点 + 预期证据
05

给你自己的代码写测试

把这个闭环迁移到你自己的函数上:一个 fixture、一组参数化边界、一个抓到的 bug 或诚实记录。

检查点 + 预期证据

开始

Pro 课程——订阅有效即可开始解题

Pro用 Agent 掌握 Python 开发工具链

属于「用 Agent 掌握 Python 开发工具链」路线

本课程的文件同样经上方入口语句到达——订阅生效后,授权链接会自动附带 pro:files 权限。只有订阅有效期间才能记录认领。

永久免费

免费课程不会缩水

基础路线与开源仓库里的每门社区课程永远免费,六门 Agent 工具课也全部免费——Pro 资助付费路线的建设,不会把公共资源收进收费墙。

场景皮肤

同样的技能,你熟悉的领域

三个皮肤走同一份代码和同一套测试。开课前选一个最贴近你工作的。

scenario/textstats/textstats.py

文本统计库

一个小型标准库——字数统计、阅读时长、slugify——bugs/ 里放着预埋 bug 的变体。

验证

“完成”由什么决定

七个测试的契约套件:你的 pytest 套件必须在参考实现上全过、在 bug 变体上至少报出 4 个失败,且包含 fixture、参数化用例与异常断言——不允许 skip。

python verify.py  # 在课程文件夹运行:打印检查点状态 + 认领码

把这套方法带回你的项目

第 5 课把工作流——而不是代码——迁移到你真正拥有的一个脚本上:三行任务契约、一个从红变绿的新测试、 一份写明测试不能证明什么的记录。同一个循环在AI Coding 工作方法指南中有完整描述, 并可由可运行示例练习。

认领你的证据

检查点通过后,python verify.py 会打印确定性认领码。 完成授权的 Agent 会替你一次性批量提交;手动提交则粘贴到进度页—— 每个检查点 10 分,集齐五个获得 抓得住 bug 的套件 课程徽章。认领码是自我声明的证据,不是证书。

验证不能证明什么

通过课程套件只证明被锚定的行为在测试输入上成立——不等于明天的数据也对,不等于生产性能达标, 在你为自己的项目写下契约之前,也不代表你项目里的任何事。仓库测试是证据,不是你的结果。