第 5 章 测试与可复现
提交前四项检查全过才能提交,PR 须附可复现所需信息。
5.1 提交前四检查
| 检查项 | 标准 | 命令示例 |
|---|---|---|
| 编译 | 零错误、零警告 | `cmake --build build` |
| 单元测试 | 全部通过 | `ctest --output-on-failure` |
| 示例数据 | 关键路径可复现 | `./run.sh --test-data WHU20250101` |
| 回归 | 不破坏已有功能 | `./test_regression.sh` |
新增代码须附对应单元测试;测试数据优先用课题组已归档的开源数据集。
5.2 PR 必须附带的信息
填在 PR 模板对应字段(见第 6 章):
- 环境:OS、编译器、依赖库版本(精确到次版本号);Docker / Conda 给配置文件路径。
- 数据:不把数据文件提交进仓库,只在 PR 中写明用了什么——数据集名称、来源、版本 / 时间、规模。优先使用课题组已下载归档的开源数据集(写明归档路径或数据集标识),审查者用同一份数据即可复现,无需你随 PR 传输原始数据。
- 参数:影响结果的关键参数及取值。
- 结果:修改前后定量对比;负向须说明原因。
5.3 参考样例中的"测试"
- 检查脚本(
scripts/check-members.py)对应"测试"。在本地手动运行,把结果写入 PR。 - 成员卡片固定字段对应"可复现",字段一致才能通过校验。
提交 PR 前在本地跑一遍脚本,确认通过。
5.4 保密与数据合规
- 未公开数据集不得随 PR 发布至公开平台。
- 第三方数据集须确认使用许可允许内部存储与运行。
5.5 参考样例
对全部成员卡片跑校验:
python scripts/check-members.py
若某张卡片字段缺失或邮箱非法,脚本会指出具体问题。补齐后重跑,直到全部 [OK]。把运行输出作为"测试结果"贴进 PR 正文。
自检:
python scripts/check-quest.py 5