欢迎回来

登录 EAKE AI,继续您的智能之旅

忘记密码?
还没有账号?立即注册

Grok Build实战指南②:实际使用场景——用Grok Build给Python项目添加单元测试

2026-07-28 · 入门教程 · 有封面图

上一期讲了 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 给它添加单元测试。

第一步:启动 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 会做什么

Grok Build 的 Agent 会自动执行以下步骤:

步骤 1:理解项目结构

Agent 会先读取 calculator.py 的内容,理解四个函数的签名和逻辑。

步骤 2:创建测试文件

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)

步骤 3:运行测试验证

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

这个流程中值得注意的点

1. Agent 能处理边界情况

divide 函数的零除错误是一个边界情况,Grok Build 自动识别并生成了 pytest.raises 测试。

2. 测试代码质量

生成的测试代码使用了 pytest 的最佳实践(类组织、清晰断言、边界覆盖),而不是简单粗暴的测试。

3. 你需要做什么

你只需要:描述任务 → 审查 Agent 的输出 → 决定是否接受。

执行和验证都是 Agent 做的。

实际开发中的 Grok Build 用法

给已有项目加测试,只是 Grok Build 的一个场景。它还可以用于:

  • 重构:给 Grok Build 一个重构目标,它会自动跨文件修改
  • Bug 修复:粘贴错误信息,Grok Build 分析原因并修复
  • 功能开发:描述需求,Grok Build 实现并写测试
  • 代码审查:让 Grok Build 审查某个文件的问题

下期预告

下一期讲 Grok Build 的进阶用法:如何引导 Agent 进行大规模代码重构,以及如何处理 Agent 生成代码中的错误。


Grok Build 实战指南系列 ② 待续,共七期。

评论区

发表评论