必须手动配置CodeGeeX以生成可运行的C++单元测试:先确保插件启用并登录,再通过侧边栏指令或函数注释明确指定Google Test框架、头文件及断言;生成后需修正文件名、TEST宏分号、补全main函数,并配置tasks.json实现一键构建运行。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在 VS Code 中用 CodeGeeX 快速生成真正能跑、覆盖准、风格对的单元测试,不能只靠点一下就完事——它不会自动猜你用的是 Google Test 还是 pytest,也不会替你补 main 函数或修复 TEST 宏后的分号,更不会在你没登录时悄悄返回 Python 风格的伪代码。
先让插件“活过来”
打开 VS Code → 按 Ctrl+Shift+X 进扩展面板 → 搜索 CodeGeeX → 确认已安装且状态栏右下角出现蓝色鲸鱼图标并显示 “Online”。【若图标灰显或无响应,所有生成操作均无效】
点击右侧边栏 CodeGeeX 图标 → 右上角头像处确认账号为 “Authenticated”,未登录则必须用 GitHub 或邮箱授权,否则 /tests 指令直接被忽略。
强制模型理解你的技术栈
CodeGeeX 默认倾向输出 Go 或 Python 测试,C++ 和 Java 项目尤其容易翻车。必须用明确指令锚定框架和语法:
方法一:侧边栏精准提问
在 CodeGeeX 面板输入:/tests for the C++ function above, using Google Test framework, include <gtest/gtest.h>, use ASSERT_EQ and EXPECT_TRUE → 回车。
方法二:函数内联注释引导
在目标函数上方添加三行注释:// @framework: google-test// @include: <gtest/gtest.h>// @assert: ASSERT_EQ(result, expected)
再选中整个函数(含 func 关键字、参数、花括号),右键 → CodeGeeX → Generate Unit Test。
注意:若生成结果中出现 #include "gtest/gtest.h" 但缺失 int main(int argc, char **argv) 或 testing::InitGoogleTest(&argc, argv),说明上下文未被完整捕获,需重试并补全注释。
修复生成代码的致命硬伤
第一步:检查生成文件名是否为 【xxx_test.cpp】(不是 .cc/.cxx/.h),且与被测源文件同目录;VSCode 的 Test Adapter for Google Test 插件仅识别 *_test.cpp 文件。
第二步:确认每个 TEST 宏调用后无分号 —— TEST(MyMath, AddPositive) { }; 是错误写法,必须删掉结尾分号。
CodeGeeX 2.21.0是智谱AI推出的AI编程助手版本,对Inline Chat功能进行了重大优化,包括UI设计升级、支持流式输出以提升响应速度,并新增“查看思路”按钮以便理解代码原理。同时,该版本在编辑器中新增CodeLens控件,支持一键“解释”代码或“添加注释”。目前该工具对个人开发者免费开放。
第三步:补全入口函数。若生成代码不含 main 函数,手动追加:
int main(int argc, char **argv) {<br> ::testing::InitGoogleTest(&argc, argv);<br> return RUN_ALL_TESTS();<br>}
让测试贴合项目真实风格
① 打开项目根目录,检查是否存在 pyproject.toml 或 setup.cfg;若存在,确认其中包含 [tool.pytest] 或 [pytest] 区块。
② 若项目使用 conftest.py 定义了 custom fixture(如 @pytest.fixture(scope="session")),请确保该文件位于 tests/ 目录或其父级,并已被 VS Code Python 解释器识别。
③ 在终端中运行 python -m pytest --version,输出必须含 “pytest X.Y.Z” 字样;若报错 “no module named pytest”,则需先执行 pip install pytest pytest-mock。
五种触发方式怎么选
1. 右键菜单(推荐单个函数):光标置于 def 行任意位置 → 右键 → “CodeGeeX: Generate Unit Test”。【此操作必须在 .py 文件内进行,.ipynb 或未保存的临时文件不支持】
2. 侧边栏指令(适合定制输出):按 Ctrl+Shift+C 呼出面板 → 输入 /tests for the function above → 回车。
3. 注释驱动(提升边界覆盖):在函数上方加 GoDoc 或 Javadoc 注释,明确写出空输入、panic 条件、典型示例;CodeGeeX 会据此生成 t.Run("nil input panics", ...) 类子测试。
4. CLI 批量生成(CI/CD 场景):运行 codegeex-cli test --file ./src/math_utils.py --function find_max,工具自动解析 AST 并输出至 ./tests/test_math_utils.py。
5. 快捷键触发(高频编辑):在函数前一行插入 # @codegeex generate pytest test,确保与 def 之间无空行 → 按 Ctrl+Enter(Windows/Linux)或 Cmd+Enter(macOS)。

















