Testcontainers for Java

关于 Testcontainers for Java
Testcontainers for Java是一个支持 JUnit 测试的 Java 库,提供常用数据库、Selenium 网络浏览器或任何其他可以在 Docker 容器中运行的东西的轻量级、一次性实例。

测试容器使以下类型的测试变得更容易:

数据访问层集成测试:使用 MySQL、PostgreSQL 或 Oracle 数据库的容器化实例来测试数据访问层代码的完全兼容性,但不需要在开发人员的机器上进行复杂的设置,并且可以放心,您的测试将始终从已知的数据库状态开始。也可以使用任何其他可以容器化的数据库类型。
应用程序集成测试:用于在具有依赖项(例如数据库、消息队列或 Web 服务器)的短暂测试模式下运行您的应用程序。
UI/验收测试:使用与 Selenium 兼容的容器化 Web 浏览器进行自动化 UI 测试。每次测试都可以获得浏览器的新实例,无需担心浏览器状态、插件变化或自动浏览器升级。而且,您可以获得每次测试会话的视频记录,或者仅获得每次测试失败的会话的视频记录。
还有更多!查看各种贡献的模块或以它们GenericContainer为基础创建您自己的自定义容器类。
先决条件
Docker - 请参阅常规 Docker 要求
支持的 JVM 测试框架:
JUnit 4 - 请参阅JUnit 4 快速入门指南
木星/JUnit 5
斯波克
或者手动添加代码来控制容器/测试生命周期(请参阅此方法的提示)
Maven 依赖项
Testcontainers 作为具有通用版本号的单独 JAR 进行分发:

用于核心功能、通用容器和 docker-compose 支持的核心 JAR 文件
每个专用模块都有一个单独的 JAR 文件。每个模块的文档都描述了要添加到项目构建中的 Maven/Gradle 依赖项。
对于核心库,最新的 Maven/Gradle 依赖项如下:

Gradle

testImplementation "org.testcontainers:testcontainers:1.20.1"

Maven

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

管理多个 Testcontainers 依赖项的版本

为了避免指定每个依赖项的版本,您可以使用BOM或Bill Of Materials。

使用 Maven,您可以将以下内容添加到dependencyManagement您的部分中pom.xml:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.testcontainers</groupId>
            <artifactId>testcontainers-bom</artifactId>
            <version>1.20.1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

使用 Gradle 5.0 或更高版本,您可以将以下内容添加到dependencies您的部分中build.gradle:

implementation platform('org.testcontainers:testcontainers-bom:1.20.1') //import bom
testImplementation('org.testcontainers:mysql') //no version specified
作者:Jeebiz  创建时间:2024-08-09 23:46
最后编辑:Jeebiz  更新时间:2024-08-09 23:57