必须满足函数上下文完整、测试依赖可识别、项目配置已加载三个前提,才能生成风格匹配的单元测试;需确认codegeex插件在线且已认证,检查pyproject.toml或setup.cfg中的pytest配置,确保conftest.py被识别,并安装pytest及相关库。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在 VS Code 中让 CodeGeex 为你自动生成一套与项目风格完全匹配的单元测试(比如 pytest 风格、带 fixture、参数化、mock 行为都贴合当前代码库),不能只靠模糊触发——必须满足函数上下文完整、测试依赖可识别、项目配置已加载三个硬性前提,否则生成的测试会缺 import、错命名、漏异常路径。
确认插件已激活且连接稳定
打开 VS Code → Ctrl+Shift+X 进扩展市场 → 搜索“CodeGeeX” → 确认状态栏右下角出现蓝色鲸鱼图标并显示“Online”。【若图标灰显或提示 offline,所有生成操作均无效】
点击图标 → 在弹出面板中点击右上角用户头像 → 查看账号状态是否为“Authenticated”,未登录则需用 GitHub 或邮箱完成授权。
让 CodeGeex 精准识别项目测试风格
CodeGeex 不会凭空猜你用 pytest 还是 unittest,它依赖项目根目录下的实际配置文件做判断:
① 打开项目根目录,检查是否存在 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。
三种触发方式及适用场景
方法一:右键菜单精准生成(推荐用于单个函数)
将光标置于目标函数的 def 行任意位置 → 右键 → 选择 “CodeGeeX: Generate Unit Test”。【此操作必须在 .py 文件内进行,.ipynb 或未保存的临时文件不支持】
生成的测试函数会自动以 test_原函数名 命名,插入位置默认为当前文件末尾;若当前文件已有 if __name__ == "__main__" 块,则插入在其上方。
方法二:侧边栏指令生成(适合批量或需定制输出)
按 Ctrl+Shift+C 呼出 CodeGeeX 面板 → 在输入框中输入 /tests for the function above → 回车。模型将解析光标所在函数的全部上下文,包括类型注解、docstring 中的 Example 和 Raises 说明。
若函数含 requests.get 调用且项目已安装 responses 库,生成代码会自动引入 @responses.activate 和 mock 响应构造;未装则退化为 patch 方式。
方法三:注释指令强制指定风格(唯一能控制 fixture 使用的方式)
在函数正上方添加一行注释:# @codegeex generate pytest test with fixture="db_session" → 光标停在该行 → 按 Ctrl+Enter(Windows/Linux)或 Cmd+Enter(macOS)。
这会生成含 def test_xxx(db_session): 参数的测试函数,并在函数体首行插入 assert db_session.is_active 类型的校验语句。注意:fixture 名必须与 conftest.py 中定义的名称完全一致,大小写敏感。











