测试
运行测试
运行完整测试套件:测试组织
单元测试(Unit Tests)
嵌入在被测代码旁边,使用#[cfg(test)] 模块。大多数存储和引擎逻辑都有就近的单元测试。
关键测试文件:
crates/memorose-core/src/storage/tests.rs— 全面的存储后端测试engine/、llm/和graph/中的模块级#[cfg(test)]块
集成测试(Integration Tests)
位于crates/memorose-core/tests/integration.rs。这些测试覆盖完整的 ingest → retrieve → mark-processed 流程。
测试模式
异步测试
所有 I/O 密集型测试使用tokio::test:
临时目录
需要存储的测试使用tempfile 创建隔离的数据目录:
Mock LLM
涉及 LLM 调用的测试使用 mock 模式以避免真实 API 调用:HTTP Mock
调用外部服务的测试使用wiremock 进行请求拦截:
编写新测试
约定
- 将单元测试放在被测文件底部的
#[cfg(test)]模块中 - 将集成测试放在
crates/memorose-core/tests/目录下 - 使用描述性测试名称:
test_hybrid_search_with_agent_filter,而非test_search_2 - 清理所有临时资源——优先使用
TempDir而非手动目录管理 - 避免真实 LLM 调用——除非你专门测试 LLM 集成,否则使用 mock 模式