[任务] 使用 Qlean 替换现有集成测试,并移除对 SQLite 的依赖
[任务分值] 25 分
[背景描述]
当前系统的集成测试依赖:
为解决以上问题,计划引入 Qlean:
- 基于 QEMU/KVM 提供完整虚拟机隔离环境
- 可为 Rust 项目提供端到端(E2E)集成测试
- 支持清洁环境,每次测试可重建 VM
- 移除 SQLite 依赖,使测试更加轻量、可移植
[需求描述]
一、目标
• 将现有集成测试迁移到 Qlean 框架
• 保证测试覆盖现有逻辑
• 移除对 SQLite 的依赖,改为在隔离 VM 内使用实际服务(如 Postgres、Redis 或文件存储)二、功能需求
二、功能需求
- Qlean 测试环境搭建
• 为每个测试用例启动独立虚拟机
• 部署依赖服务(数据库、缓存等)
• 提供 Rust 项目代码在隔离环境内编译、执行
- 测试脚本迁移
• 将现有集成测试脚本改写为 Qlean 测试任务
• 保留原有测试逻辑和断言
• 确保测试能够访问必要的系统服务和文件
- 移除 SQLite 依赖
• 更新测试配置
• 替换 SQLite 数据库为 VM 内实际数据库或内存数据库
• 清理项目依赖
- CI / 本地开发兼容性
• 保证 Qlean 测试可以在 CI 环境中运行
• 提供本地开发启动脚本或 docker-compose 辅助工具
• 确保测试结果可重复
[代码标准]
- 所有 PR 提交必须签署
Signed-off-by 和 使用 GPG 签名,即提交代码时(使用 git commit 命令时)至少使用 -s -S 两个参数,参考 Contributing Guide;
- 所有 PR 提交必须通过
GitHub Actions 自动化测试,提交 PR 后请关注 GitHub Actions 结果;
- 代码注释均需要使用英文;
[PR 提交地址] 提交到 mega 仓库的 main 分支 `` 目录;
[开发指导]
- 认领任务参考 r2cn 开源实习计划 - 任务认领与确认;
[导师及邮箱] 请申请此题目的同学使用邮件联系导师,或加入到 R2CN Discord 后在 #p-meta 频道和导师交流。
- Quanyi Ma genedna@gmail.com
- Tianxing Ye yetianxing2014@gmail.com
[备注]
- 认领实习任务的同学,必须完成测试任务和注册流程,请参考: r2cn 开源实习计划 - 测试任务 和 r2cn 开源实习计划 - 学生注册与审核
[任务] 使用 Qlean 替换现有集成测试,并移除对 SQLite 的依赖
[任务分值] 25 分
[背景描述]
当前系统的集成测试依赖:
为解决以上问题,计划引入 Qlean:
[需求描述]
一、目标
• 将现有集成测试迁移到 Qlean 框架
• 保证测试覆盖现有逻辑
• 移除对 SQLite 的依赖,改为在隔离 VM 内使用实际服务(如 Postgres、Redis 或文件存储)二、功能需求
二、功能需求
• 为每个测试用例启动独立虚拟机
• 部署依赖服务(数据库、缓存等)
• 提供 Rust 项目代码在隔离环境内编译、执行
• 将现有集成测试脚本改写为 Qlean 测试任务
• 保留原有测试逻辑和断言
• 确保测试能够访问必要的系统服务和文件
• 更新测试配置
• 替换 SQLite 数据库为 VM 内实际数据库或内存数据库
• 清理项目依赖
• 保证 Qlean 测试可以在 CI 环境中运行
• 提供本地开发启动脚本或 docker-compose 辅助工具
• 确保测试结果可重复
[代码标准]
Signed-off-by和 使用GPG签名,即提交代码时(使用git commit命令时)至少使用-s -S两个参数,参考 Contributing Guide;GitHub Actions自动化测试,提交 PR 后请关注GitHub Actions结果;[PR 提交地址] 提交到 mega 仓库的
main分支 `` 目录;[开发指导]
[导师及邮箱] 请申请此题目的同学使用邮件联系导师,或加入到 R2CN Discord 后在
#p-meta频道和导师交流。[备注]