# 使用 Testcontainers 运行集成测试

Testcontainers (opens new window) 是一个流行的集成测试库,旨在简化测试环境的设置和管理。它能够在隔离的 Docker 容器中运行真实服务,使得在本地和 CI/CD 流水线中创建一致的测试场景变得简单。

通过 Testcontainers,您可以使用您偏好的编程语言运行 typesense/typesense Docker 镜像。您可以通过通用容器 API(提供完全控制和灵活性)实现这一点,或者利用预构建模块(简化容器配置和设置,节省时间和精力)。

# Java

首先,让我们使用 Gradle 或 Maven 导入依赖项。

使用 Gradle:

testImplementation "org.testcontainers:typesense:1.20.4"

或 Maven:

<dependency>
    <groupId>org.testcontainers</groupId>
    <artifactId>typesense</artifactId>
    <version>1.20.4</version>
    <scope>test</scope>
</dependency>

现在,让我们编写一个使用 TypesenseContainer 的测试,它将启动容器。然后配置 Typesense 的客户端以连接到容器。

try (
    TypesenseContainer typesense = new TypesenseContainer("typesense/typesense:27.1")
) {
    typesense.start();
    List<Node> nodes = Collections.singletonList(
        new Node("http", typesense.getHost(), typesense.getHttpPort())
    );
    Configuration configuration = new Configuration(nodes, Duration.ofSeconds(5), typesense.getApiKey());
    Client client = new Client(configuration);
}

还支持与 JUnit 4、JUnit 5 和 Spock 测试库的集成。有关 Java 版 Testcontainers 的更多信息,请查阅文档 (opens new window)