Skip to content

先运行测试

在使用 coding agent 时,自动化测试不再是可选的。过去不写测试的借口——认为它们耗时且昂贵,在代码库快速变化时需要不断重写——在 agent 时代不再成立,因为 agent 可以在几分钟内完成测试的编写和调整。

测试对于确保 AI 生成的代码按预期工作至关重要。如果代码从未被执行过,那么它在部署到生产环境时能否工作纯粹靠运气。

测试也是帮助 agent 快速了解现有代码库的绝佳工具。当你向 Claude Code 或类似工具询问现有功能时,它们很可能会找到并阅读相关测试。

Agent 已经倾向于测试,但现有测试套件的存在几乎肯定会促使 agent 在后续修改中添加自己的测试。

每当我在新项目中启动与 agent 的新会话时,我都会首先提示类似以下内容:

First run the tests

对于我的 Python 项目,我已经将 pyproject.toml 配置好,这样我可以用更简短的提示:

uv run pytest

这四个词的提示有几个目的:

  1. 告诉 agent 存在测试套件,并迫使它找出如何运行测试。这几乎确保 agent 将来会运行测试以确保没有破坏任何东西。

  2. 提供项目规模参考 - 大多数测试工具会给 agent 一个粗略的测试数量指示。这可以作为项目规模和复杂程度的参考,也暗示 agent 如果想了解更多应该去查看测试本身。

  3. 让 agent 进入测试心态 - 运行测试后,agent 自然会扩展自己的测试。

类似于”Use red/green TDD”,“First run the tests”是一个四词提示,包含了已经融入模型的软件工程规范。


原文: https://simonwillison.net/guides/agentic-engineering-patterns/first-run-the-tests/