- 新增 tests/helpers.ts 的 rmRetry 工具函数,解决 SQLite 文件句柄未及时释放导致 afterAll 清理时 EBUSY 错误 - 修改通配符测试用例,使用 bun -e 替代 echo 命令,确保跨平台行为一致
1.1 KiB
1.1 KiB
Capability: windows-test-compat
Purpose
确保测试在 Windows 平台上的兼容性,包括文件句柄释放后的目录清理重试机制和跨平台命令测试约定。
Requirements
Requirement: 测试临时目录清理 SHALL 支持重试
使用 SQLite 数据库的测试 SHALL 在 afterAll 中使用带重试的目录删除机制,确保在 Windows 上文件句柄未及时释放时不会导致测试失败。
Scenario: Windows 上 SQLite 文件句柄延迟释放
- WHEN 测试在 Windows 上运行,
store.close()后立即尝试删除临时目录 - THEN 删除操作 SHALL 自动重试(最多 3 次,间隔 200ms),直到成功或耗尽重试次数
Requirement: 命令检测器测试 SHALL 使用跨平台命令
命令检测器的测试 SHALL 使用 bun -e 脚本替代系统 echo 命令,确保测试断言在所有平台上行为一致。
Scenario: 验证非 shell 模式下特殊字符不被展开
- WHEN 通过
Bun.spawn执行bun -e "console.log('*')"并检查 stdout 包含* - THEN 测试 SHALL 在 Windows 和 Linux 上均返回
matched: true