ctrl+alt+b是cph插件运行测试用例的默认快捷键,直接触发编译、执行、比对三步流程,但需满足文件已保存、扩展名受支持、测试用例路径正确且状态栏显示“cph: ready”等前提条件。

CPH 插件的 Ctrl+Alt+B 是最直接的快捷键
如果你装了 Competitive Programming Helper(CPH)插件,且当前文件已关联测试用例(自动导入或手动添加),Ctrl+Alt+B 就是运行当前活动测试用例的默认快捷键。它不依赖 launch.json 或 tasks.json,也不要求你打开终端——直接触发编译、执行、比对三步流程。
常见错误现象:按了没反应。可能原因包括:
- 当前文件未保存(CPH 默认不自动保存,
files.autoSave设为off时尤其明显) - 文件扩展名不在 CPH 支持列表里(比如写的是
.pyw而非.py) - 测试用例目录结构不对:CPH 默认查找同名文件夹下的
in/和out/子目录,或同一级的.in/.out文件对 - 状态栏没显示
CPH: Ready,说明插件未激活或未识别当前语言
没装 CPH?用 terminal.runActiveFile + 自定义快捷键更通用
CPH 主要面向算法题,日常项目中更推荐绑定 terminal.runActiveFile 命令。它不挑语言,只要终端里能跑就行(python、node、go run 等)。
操作要点:
- 打开快捷键设置:
Ctrl+K Ctrl+S(Windows/Linux)或Cmd+K Cmd+S(macOS) - 搜索
terminal.runActiveFile,右键 → “更改键绑定” - 按下新组合键(如
Ctrl+Shift+R),VSCode 会自动加when条件:editorTextFocus && !editorReadonly - 确保当前文件已保存,且终端已安装对应解释器(例如
python3 --version能返回结果)
注意:terminal.runActiveFile 不会自动识别测试框架(如 pytest、jest)。它只是在终端里执行 python test_foo.py 这类命令,所以你要自己保证脚本可直接运行。
Python 测试用例优先用 Python 扩展的专用命令
如果你写的是 Python 单元测试(unittest 或 pytest),VS Code 的官方 Python 扩展提供了更语义化的命令,比通用运行更可靠:
-
Python: Run All Tests—— 运行整个项目的测试 -
Python: Run Current Unit Test—— 只运行光标所在测试方法或类 -
Python: Debug Current Unit Test—— 带断点调试单个测试
这些命令默认绑定在右键菜单里,也可手动设快捷键。关键前提是:
- 已通过
Python: Select Interpreter指定正确环境(含pytest或unittest) - 工作区根目录下有
pytest.ini或setup.cfg等配置文件(否则可能找不到测试) - 测试文件名匹配模式:
test_*.py或*_test.py
为什么 Ctrl+F5 不适合运行测试用例
Ctrl+F5(或 Cmd+F5)本质是 workbench.action.debug.start,它只读取 launch.json 里的 configurations,而绝大多数测试场景不会把“运行测试”写进调试配置里。
典型报错:No configuration found to debug 或 Cannot launch program; the specified path does not exist。即使你硬塞了个 "program": "pytest",VS Code 也大概率因权限、路径解析或参数格式问题失败。
真正需要调试测试时,应该用 Python: Debug Current Unit Test 这类专用命令,而不是靠改 launch.json 把调试器当运行器使。
复杂点在于:测试行为本身是语言和框架耦合的。CPH 面向裸代码,Python 扩展面向测试框架,terminal.runActiveFile 面向终端命令——选哪个,取决于你手头的文件到底是什么、想怎么验证它。











