💎 Ruby 虚拟测试容器
使用 Testcontainers 在 Ruby 测试中管理 Docker 容器
TestContainer 是一个 Ruby 库,它为您的测试提供了运行 Docker 容器的便捷方式。它的灵感来自于流行的 Java 测试容器库。
这个库简化了测试期间管理 Docker 容器的过程,从而更容易确保每个测试都有一个一致的、独立的环境。它支持广泛的容器,包括数据库、消息队列和 Web 服务器。
安装
安装 gem 并将其添加到应用程序的 Gemfile 中,执行:
1
$ bundle add testcontainers
如果没有使用 Bundler 来管理依赖关系,可以执行以下命令安装 gem:
1
$ gem install testcontainers
使用方法
要在测试中使用 Testcontainers,首先在测试设置中创建并启动一个容器。例如,要运行一个 Redis 容器:
1
2
container = Testcontainers::DockerContainer.new("redis:6.2-alpine").with_exposed_port(6379)
container.start
在测试中,现在可以访问容器的主机和映射端口:
1
2
host = container.host
port = container.mapped_port(6379)
这使您可以连接到容器化服务并执行测试。运行完测试后,您可以停止并删除容器:
1
2
container.stop
container.delete
有关更详细的示例,请参阅文档文件夹中的快速入门指南。
包含的模块
Testcontainers 包含一些模块,可以替代通用的 DockerContainer
,用于常见的数据库和服务,提供预配置的设置并减少样板代码:
- ComposeContainer
- ElasticsearchContainer
- MariadbContainer
- MongoContainer
- MysqlContainer
- NginxContainer
- PostgresContainer
- RabbitmqContainer
- RedisContainer
- RedpandaContainer
- SeleniumContainer
本文由作者按照
CC BY 4.0
进行授权