上一期讲了 Grok Build 的基本概念,这一期来真的——用一个实际场景演示 Grok Build 的工作流程。
场景:给一个已有的 Python 项目添加单元测试。
这是一个非常常见的开发需求,也是检验 AI 编程 Agent 能力的好任务——涉及文件理解、测试框架选择、代码覆盖率思考。
假设你有一个简单的 Python 项目,结构如下:
my_project/
calculator.py # 一个计算器模块
main.py # 入口文件
requirements.txt
calculator.py 的内容:
def add(a, b):
return a + b
def subtract(a, b):
return a - b
def multiply(a, b):
return a * b
def divide(a, b):
if b == 0:
raise ValueError("Cannot divide by zero")
return a / b
现在用 Grok Build 给它添加单元测试。
# 如果你是 GenHub 用户
# 到 Agent 管理里启动 Grok Build
# 如果你是手动安装
./target/release/grok-build
# Grok Build 会启动 TUI 界面
在 Grok Build 的 TUI 界面里输入:
为 calculator.py 添加单元测试,要求:
1. 使用 pytest 框架
2. 覆盖 add/subtract/multiply/divide 四个函数
3. 覆盖正常情况和边界情况(特别是 divide 的零除错误)
4. 创建 test_calculator.py 文件
Grok Build 的 Agent 会自动执行以下步骤:
Agent 会先读取 calculator.py 的内容,理解四个函数的签名和逻辑。
Agent 会创建 test_calculator.py:
import pytest
from calculator import add, subtract, multiply, divide
class TestCalculator:
def test_add(self):
assert add(2, 3) == 5
assert add(-1, 1) == 0
assert add(0, 0) == 0
def test_subtract(self):
assert subtract(5, 3) == 2
assert subtract(1, 1) == 0
assert subtract(0, 5) == -5
def test_multiply(self):
assert multiply(3, 4) == 12
assert multiply(-2, 3) == -6
assert multiply(0, 100) == 0
def test_divide(self):
assert divide(10, 2) == 5
assert divide(-6, 3) == -2
assert divide(5, 2) == 2.5
def test_divide_by_zero(self):
with pytest.raises(ValueError, match="Cannot divide by zero"):
divide(10, 0)
Agent 会自动运行测试,确保测试通过:
pytest test_calculator.py -v
Grok Build 会把结果展示给你:
test_calculator.py::TestCalculator::test_add PASSED
test_calculator.py::TestCalculator::test_subtract PASSED
test_calculator.py::TestCalculator::test_multiply PASSED
test_calculator.py::TestCalculator::test_divide PASSED
test_calculator.py::TestCalculator::test_divide_by_zero PASSED
5 passed in 0.32s
divide 函数的零除错误是一个边界情况,Grok Build 自动识别并生成了 pytest.raises 测试。
生成的测试代码使用了 pytest 的最佳实践(类组织、清晰断言、边界覆盖),而不是简单粗暴的测试。
你只需要:描述任务 → 审查 Agent 的输出 → 决定是否接受。
执行和验证都是 Agent 做的。
给已有项目加测试,只是 Grok Build 的一个场景。它还可以用于:
下一期讲 Grok Build 的进阶用法:如何引导 Agent 进行大规模代码重构,以及如何处理 Agent 生成代码中的错误。
Grok Build 实战指南系列 ② 待续,共七期。
评论区