Skip to content

[r2cn] 使用 Qlean 替换现有集成测试,并移除对 SQLite 的依赖 #1968

Description

@benjamin-747

[任务] 使用 Qlean 替换现有集成测试,并移除对 SQLite 的依赖

[任务分值] 25 分

[背景描述]

当前系统的集成测试依赖:

  • 本地 SQLite 数据库

为解决以上问题,计划引入 Qlean:

  • 基于 QEMU/KVM 提供完整虚拟机隔离环境
  • 可为 Rust 项目提供端到端(E2E)集成测试
  • 支持清洁环境,每次测试可重建 VM
  • 移除 SQLite 依赖,使测试更加轻量、可移植

[需求描述]
一、目标
• 将现有集成测试迁移到 Qlean 框架
• 保证测试覆盖现有逻辑
• 移除对 SQLite 的依赖,改为在隔离 VM 内使用实际服务(如 Postgres、Redis 或文件存储)二、功能需求
二、功能需求

  1. Qlean 测试环境搭建
    • 为每个测试用例启动独立虚拟机
    • 部署依赖服务(数据库、缓存等)
    • 提供 Rust 项目代码在隔离环境内编译、执行
  2. 测试脚本迁移
    • 将现有集成测试脚本改写为 Qlean 测试任务
    • 保留原有测试逻辑和断言
    • 确保测试能够访问必要的系统服务和文件
  3. 移除 SQLite 依赖
    • 更新测试配置
    • 替换 SQLite 数据库为 VM 内实际数据库或内存数据库
    • 清理项目依赖
  4. CI / 本地开发兼容性
    • 保证 Qlean 测试可以在 CI 环境中运行
    • 提供本地开发启动脚本或 docker-compose 辅助工具
    • 确保测试结果可重复

[代码标准]

  1. 所有 PR 提交必须签署 Signed-off-by 和 使用 GPG 签名,即提交代码时(使用 git commit 命令时)至少使用 -s -S 两个参数,参考 Contributing Guide
  2. 所有 PR 提交必须通过 GitHub Actions 自动化测试,提交 PR 后请关注 GitHub Actions 结果;
  3. 代码注释均需要使用英文;

[PR 提交地址] 提交到 mega 仓库的 main 分支 `` 目录;

[开发指导]

  1. 认领任务参考 r2cn 开源实习计划 - 任务认领与确认;

[导师及邮箱] 请申请此题目的同学使用邮件联系导师,或加入到 R2CN Discord 后在 #p-meta 频道和导师交流。

  1. Quanyi Ma genedna@gmail.com
  2. Tianxing Ye yetianxing2014@gmail.com

[备注]

  1. 认领实习任务的同学,必须完成测试任务和注册流程,请参考: r2cn 开源实习计划 - 测试任务r2cn 开源实习计划 - 学生注册与审核

Metadata

Metadata

Assignees

Type

Fields

No fields configured for Task.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions