CodeGeeX生成单元测试前必须检查三件事:①项目根目录存在pyproject.toml或setup.cfg且含[tool.pytest]区块;②conftest.py位于tests/目录或其父级并被Python解释器识别;③终端运行python -m pytest --version能成功输出版本号。

能生成,但不是“点一下就完事”——生成质量直接取决于你项目里有没有被识别到的测试配置、依赖是否就位、函数上下文是否完整。
CodeGeeX 生成测试前必须检查的三件事
它不猜你用什么框架,只读真实文件:
-
pyproject.toml或setup.cfg里得有[tool.pytest]或[pytest]区块,否则默认按最简 pytest 规则生成,可能漏@pytest.mark.parametrize或自定义 fixture -
conftest.py必须在tests/目录或其父级,且 VS Code Python 解释器已加载该文件(右键 → “Python: Select Interpreter” 确认路径正确) - 终端执行
python -m pytest --version必须成功输出版本号;若报错No module named pytest,先pip install pytest pytest-mock
右键生成 test_ 函数时的实际行为
光标停在 def my_calc(a, b): 这一行,右键选 “CodeGeeX: Generate Unit Test”,它会:
- 自动提取函数签名、docstring、类型注解(如有),用于构造输入参数和断言逻辑
- 把生成的
test_my_calc插入当前文件末尾;如果文件结尾有if __name__ == "__main__":,就插在这之前 - 不会跨文件 import —— 若被测函数依赖同包其他模块,需手动补
from .utils import helper类导入语句 - 不处理异步函数:遇到
async def,生成的测试仍是同步调用,会报RuntimeWarning: coroutine 'xxx' was never awaited
pytest 配置没生效?VS Code 测试侧边栏不显示用例
常见卡点不在插件本身,而在 VS Code 的 Python 扩展对测试框架的识别逻辑:
- 确认设置了
python.testing.pytestEnabled: true,且python.testing.pytestArgs没误写成["--collect-only"](这会让它只收集不注册) - 项目根目录下必须存在
tests/目录,且里面至少有一个test_*.py文件(哪怕空文件),否则测试侧边栏初始化失败 - 如果用了
src/结构(代码在src/mylib/),需在pytest.ini中加testpaths = src tests,否则python -m pytest能跑,VS Code 却找不到
真正决定生成效果的,从来不是模型多聪明,而是你项目里那几个配置文件有没有放对位置、有没有被解释器真正加载。漏掉任何一个,生成的测试就大概率要手动修 import、改 fixture、补异常路径。


















