惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
Engineering at Meta
Engineering at Meta
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 聂微东
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Last Week in AI
Last Week in AI
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 三生石上(FineUI控件)
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research
Hugging Face - Blog
Hugging Face - Blog
爱范儿
爱范儿
博客园 - 司徒正美
人人都是产品经理
人人都是产品经理
Jina AI
Jina AI
博客园 - 叶小钗
雷峰网
雷峰网
罗磊的独立博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - Franky
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
阮一峰的网络日志
阮一峰的网络日志
量子位

博客园 - 老肖想当外语大佬

DDD难落地?就让AI干吧! - cleanddd-skills介绍 NetCorePal.Aspire 项目介绍 netcorepal-cloud-framework v3.3.0 发布:增强可观测性,补强时间处理与代码分析可视化能力 明天周日,欢迎参加Clean DDD 技术沙龙 2025 杭州站 DDD之理解复杂度、尊重复杂度、掌控复杂度 懂了这个道理,人月神话不再是神话! 解决DDD最大难题-如何划分领域 反DDD模式之“复用” 反DDD模式之关系型数据库 欢迎加入d3shop,一个DDD实战项目 图穷匕见-所有反DDD模式都是垃圾 主观与客观,破除DDD凭经验魔咒 学习真DDD的最佳路径 DDD是软件工程的第一性原理? DDD建模后写代码的正确姿势(Java、dotnet双平台) 一种很变态但有效的DDD建模沟通方式 这就是为什么你学不会DDD 为了给Javaer落地DDD,我们不得不写开源组件 这是DDD建模最难的部分(其实很简单)
netcorepal-testcontainers:国产数据库测试容器扩展
老肖想当外语大佬 · 2026-03-31 · via 博客园 - 老肖想当外语大佬

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