netcorepal-testcontainers:国产数据库测试容器扩展

netcorepal-testcontainers:国产数据库测试容器扩展

netcorepal-testcontainers

netcorepal-testcontainers 是一个面向 .NET 的 Testcontainers 扩展包集合,用于为特定基础设施提供容器封装,支持本地开发与集成测试。

项目的建设目标,是为 netcorepal-cloud-framework 提供国产化数据库的自动化验证基础设施,支撑相关能力的持续集成与回归验证。

目前,netcorepal-testcontainers 已集成到 netcorepal-cloud-template 中,可直接随模板使用,开箱即用。

当前支持

当前已提供以下扩展包:

  • NetCorePal.Testcontainers.OpenGauss
  • NetCorePal.Testcontainers.DMDB
  • NetCorePal.Testcontainers.KingbaseES

上述扩展面向国产化场景中常见数据库产品,为相关测试与验证提供统一的容器化接入方式。

代码示例

以下示例展示了 netcorepal-testcontainers 的基本使用方式。

OpenGauss

using Testcontainers.OpenGauss;

await using var container = new OpenGaussBuilder()
.WithImage("opengauss/opengauss:latest")
.WithPassword("Test@123")
.Build();

await container.StartAsync();

var connectionString = container.GetConnectionString();

DMDB

using Testcontainers.DMDB;

await using var container = new DmdbBuilder()
.WithDatabase("testdb")
.WithPassword("SYSDBA_abc123")
.WithDbaPassword("SYSDBA_abc123")
.Build();

await container.StartAsync();

var connectionString = container.GetConnectionString();

在测试中使用

using Testcontainers.OpenGauss;

public class DatabaseTests
{
[Fact]
public async Task Should_get_connection_string()
{
await using var container = new OpenGaussBuilder()
.WithPassword("Test@123")
.Build();

await container.StartAsync();

var connectionString = container.GetConnectionString();

Assert.False(string.IsNullOrWhiteSpace(connectionString));
}
}

总结

netcorepal-testcontainers 面向 netcorepal-cloud-framework 的国产数据库支持场景,提供统一的测试容器扩展能力。

项目当前已覆盖 OpenGaussDMDBKingbaseES,并已集成到 netcorepal-cloud-template,可直接用于相关项目的数据库验证与测试实践。

项目链接

  • 项目地址:https://github.com/netcorepal/netcorepal-testcontainers
  • README:https://github.com/netcorepal/netcorepal-testcontainers/blob/main/README.md

更多内容,欢迎关注同名公众号: 老肖想当外语大佬
IMG_4589

posted @ 2026-03-31 07:24  老肖想当外语大佬  阅读(9)  评论(0)    收藏  举报