常见挑战与问题
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 桌面应用程序并在菜单中选择“使用 Testcontainers Cloud 运行”选项。在 CI 中,您需要添加一个工作流步骤来下载 Testcontainers Cloud 代理。除了通过 Testcontainers 桌面应用程序在本地启用云运行时或在 CI 中安装 Testcontainers Cloud 代理之外,无需更改代码。
我可以在 CI/CD 管道中使用 Testcontainers Cloud 吗?
是的,Testcontainers Cloud 旨在 CI/CD 管道中高效工作。它通过将您使用 Testcontainers 库启动的容器卸载到云中,从而帮助减少构建时间和资源瓶颈,使其非常适合持续测试环境。
使用 Testcontainers Cloud 有什么好处?
主要优势包括减少本地机器和 CI 服务器上的资源使用,可扩展性(在不降低性能的情况下运行更多容器),一致的测试环境,集中监控,以及通过消除 Docker-in-Docker 或特权守护进程带来的安全问题,简化 CI 配置。
Testcontainers Cloud 支持所有编程语言吗?
Testcontainers Cloud 支持与开源 Testcontainers 库一起使用的任何语言,包括 Java、Python、Node.js、Go 等。只要您的项目使用 Testcontainers,就可以将其卸载到 Testcontainers Cloud。
Testcontainers Cloud 如何处理容器清理?
虽然 Testcontainers 库会自动处理容器生命周期管理,但 Testcontainers Cloud 管理分配的云工作器生命周期。这意味着容器在测试完成后由 Testcontainers 库启动、监控和清理,并且运行这些容器的工作器将在大约 35 分钟的空闲期后由 Testcontainers Cloud 自动移除。这种方法使开发人员无需手动管理容器和相关的云资源。
Testcontainers Cloud 有免费套餐或定价模型吗?
Testcontainers Cloud 的定价详情可在定价页面找到。