用途:为 C# 或 F# 项目准备本地集成测试环境,在可靠性测试前搭建能保留被测特性的最小环境。该设置不包含生产部署。
主要能力:先阅读项目文件、运行时目标、现有夹具、启动代码和依赖配置,并在有先前研究时核对其修订版本,再决定是否添加新基础设施。优先复用现有集成面:ASP.NET Core 请求管道可用现有 WebApplicationFactory 或 TestServer 夹具;真实数据库、队列或缓存可用现有 Testcontainers 夹具或本地服务;已有 Aspire 应用可用其 AppHost 及支持的测试包;多个容器化服务可用带健康检查的现有 Compose 配置;纯库使用现有测试项目,无需容器。注意 TestServer 不还原真实网络或反向代理,涉及提供商特定持久化声明时必须使用真实数据库。
使用方式:保持 SDK、目标框架、包管理和测试运行器约定,检查导入的项目属性和 global.json。用健康条件或成功的协议操作定义就绪,启动进程或固定延迟不算就绪。每次测试运行分配唯一数据库、队列、目录和动态端口,避免固定容器名和共享可变夹具。通过现有密钥设施提供测试凭据,避免进入源码、日志和报告。应用属性所需的迁移或种子状态,并记录与生产环境的差异。执行真实客户端操作并验证结果后,才认定环境就绪。成功和设置失败后都应执行清理,等待异步释放并保留有用的失败日志。Docker 不可用时报告缺失依赖,不得用内存提供程序替代并声称等同集成覆盖。时间敏感代码在支持时注入 TimeProvider,并记录不受控的时钟和外部服务。
输出:将夹具与编排保留在仓库现有布局中,记录启动、就绪、验证和清理命令;记录所需工具、解析的包版本、运行时/操作系统、资源归属、测试结果和保真度限制。参考 Testcontainers for .NET、ASP.NET Core 集成测试、Aspire 测试。