常见挑战和问题
Testcontainers Cloud 与开源 Testcontainers 框架有什么区别?
开源 Testcontainers 是一个库,它提供轻量级 API,用于使用封装在 Docker 容器中的真实服务来启动本地开发和测试依赖项。而 Testcontainers Cloud 为这些容器提供了云运行时环境。这减少了对本地环境的资源压力,并提供了更好的可扩展性,尤其是在 CI/CD 工作流程中,从而在整个组织中提供了始终如一的 Testcontainers 体验。
我可以使用 Testcontainers Cloud 运行哪些类型的容器?
Testcontainers Cloud 支持您通常与 Testcontainers 框架一起使用的任何容器,包括数据库(PostgreSQL、MySQL、MongoDB)、消息队列(Kafka、RabbitMQ)以及进行集成测试所需的其他服务。
为了使用 Testcontainers Cloud,我需要更改现有的测试代码吗?
不需要,您无需更改现有的测试代码。Testcontainers Cloud 可以与开源 Testcontainers 框架无缝集成。云配置设置完成后,它会自动管理云中的容器,而无需更改代码。
如何将 Testcontainers Cloud 集成到我的项目中?
要集成 Testcontainers Cloud,您需要安装 Testcontainers Desktop 应用程序并在菜单中选择“Run with Testcontainers Cloud”(使用 Testcontainers Cloud 运行)选项。在 CI 中,您需要添加一个工作流程步骤来下载 Testcontainers Cloud agent。除了通过本地的 Testcontainers Desktop 应用程序启用云运行时或在 CI 中安装 Testcontainers Cloud agent 之外,无需进行代码更改。
我可以在 CI/CD 流水线中使用 Testcontainers Cloud 吗?
是的,Testcontainers Cloud 旨在高效地在 CI/CD 流水线中工作。它通过将您使用 Testcontainers 库启动的容器卸载到云端,帮助减少构建时间和资源瓶颈,使其非常适合持续测试环境。
使用 Testcontainers Cloud 有哪些好处?
主要优势包括减少本地机器和 CI 服务器上的资源使用、可扩展性(在不降低性能的情况下运行更多容器)、一致的测试环境、集中监控、简化 CI 配置,同时消除了运行 Docker-in-Docker 或特权守护进程带来的安全问题。
Testcontainers Cloud 支持所有编程语言吗?
Testcontainers Cloud 支持与开源 Testcontainers 库协同工作的任何语言,包括 Java、Python、Node.js、Go 等等。只要您的项目使用 Testcontainers,就可以将其测试卸载到 Testcontainers Cloud。
Testcontainers Cloud 如何处理容器清理?
虽然 Testcontainers 库会自动处理容器生命周期管理,Testcontainers Cloud 则管理分配的云工作进程(worker)的生命周期。这意味着容器由 Testcontainers 库在测试完成后启动、监控和清理,而运行这些容器的工作进程将在 Testcontainers Cloud 约 35 分钟的空闲期后自动移除。这种方法使开发人员无需手动管理容器和相关的云资源。
Testcontainers Cloud 有免费套餐或定价模式吗?
Testcontainers Cloud 的定价详情可以在 定价页面 找到。