用途:在 VS Code 仓库中运行单元测试。首选 runTests 工具(若可用),它提供结构化输出与详细通过/失败信息,并支持按文件和测试名过滤:通过 files 参数传测试文件绝对路径;通过 testNames 参数按名称过滤;设 mode="coverage" 收集覆盖率。
降级方案:当 runTests 不可用时(例如 CLI 环境),在仓库根目录使用对应平台的脚本:macOS/Linux 用 ./scripts/test.sh [options];Windows 用 .\scripts\test.bat [options]。脚本会按需下载 Electron 并启动 Mocha 测试运行器。
常用选项:
- 裸文件路径:位置参数直接传源文件路径,运行器会把裸 .ts/.js 位置参数自动视为 --run 值,如 ./scripts/test.sh src/vs/editor/test/common/model.test.ts,可传多个文件。
- --run <file>:显式指定文件,接受以 src/ 开头的源文件路径,运行器自动去掉 src/ 前缀与 .ts/.js 扩展名以解析编译模块,可重复使用传多个文件。
- --grep <pattern>(别名 -g、-f):按名称过滤测试,传给 Mocha 的 --grep,匹配完整标题,可与 --run 组合。
- --runGlob <pattern>(别名 --glob、--runGrep):按 glob 运行匹配的测试文件,作用于编译输出目录中的 .js 文件而非源 .ts 文件。
- --coverage:生成覆盖率报告。
- --timeout <ms>:覆盖默认 Mocha 超时,用于长时间运行的测试。
限制与注意:测试针对编译后的 JavaScript 输出运行,运行前需确保 VS Code - Build 监视任务正在运行或编译已完成,过期输出导致的测试失败是常见陷阱。集成测试(文件名以 .integrationTest.ts 结尾或位于 extensions/ 中)不由 scripts/test.sh 运行,应改用 scripts/test-integration.sh(或 .bat),参见 integration-tests 技能。其它未在资料中出现的能力与细节暂未提供。