testcontainers
Testcontainers 是一个用于 .NET 集成测试的技能,指导开发者在测试中启动真实的依赖服务(如数据库、缓存、消息队列),而不是使用模拟对象。该技能强调用真实基础设施替代 Mock,覆盖数据访问层、消息队列集成、Redis 缓存行为、数据库迁移与架构变更等场景。核心原则包括:真实基础设施优先、测试隔离、自动清理、快速启动、CI/CD 兼容以及端口随机化以避免冲突。技能提供了 SQL Server、PostgreSQL、MySQL 等数据库容器的使用示例,并列出所需的 NuGet 包,如 Testcontainers、xunit、Microsoft.Data.SqlClient、Npgsql、MySqlConnector、StackExchange.Redis、RabbitMQ.Client 等。使用方式上,通过 IAsyncLifetime 实现异步初始化与销毁,配合 WaitStrategy 等待端口可用,让 Testcontainers 自动管理容器生命周期。适用场景包括编写需要真实基础设施的集成测试、验证数据访问层、测试消息队列与缓存集成、确保测试贴近生产环境。限制方面,资料未提供具体性能数据、收费信息或平台兼容性细节。