Testcontainers for Java
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:57