ページ内ナビ
概要
Testcontainers for Javaは、データベースやメッセージ基盤などを試験の開始時にDockerコンテナとして用意し、終了時に破棄する統合試験ライブラリです。開発者ごとの手動環境を減らし、実際の通信境界を含む試験を再現できます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
向いている用途
導入前の確認
参考にした公式資料
- [1]testcontainers/testcontainers-java README at 2.0.5(2026-10-05)
- [2]Testcontainers for Java official documentation(2026-10-05)
- [3]Testcontainers for Java 2.0.5 source(2026-10-05)
- [4]testcontainers/testcontainers-java LICENSE at 2.0.5(2026-10-05)
- [5]testcontainers/testcontainers-java GitHub metadata(2026-10-05)
- [6]Testcontainers 2.0.5 Wait strategy API source(2026-10-05)
編集部からの補足
外部サービスとの境界をモックから一段進めて確かめたいJavaチームに適します。まず小さなイメージのログ待機と自動破棄を確認し、その後に利用中のデータベース用モジュールへ広げてください。
3ステップで試す
- 1
固定版のJUnitプロジェクトを作る
Java 17以上、Maven、稼働中のDocker互換環境が必要です。Testcontainers 2.0.5とJUnitを固定した一時プロジェクトを作ります。
demo=$(mktemp -d "${TMPDIR:-/tmp}/testcontainers-java.XXXXXX") && cd "$demo" && mkdir -p src/test/java/demo && printf '%s\n' '<project xmlns="http://maven.apache.org/POM/4.0.0"><modelVersion>4.0.0</modelVersion><groupId>demo</groupId><artifactId>container-test</artifactId><version>1</version>' '<properties><maven.compiler.release>17</maven.compiler.release></properties>' '<dependencies><dependency><groupId>org.testcontainers</groupId><artifactId>testcontainers</artifactId><version>2.0.5</version><scope>test</scope></dependency><dependency><groupId>org.testcontainers</groupId><artifactId>testcontainers-junit-jupiter</artifactId><version>2.0.5</version><scope>test</scope></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>5.11.4</version><scope>test</scope></dependency></dependencies>' '<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.14.1</version></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>3.5.4</version></plugin></plugins></build></project>' > pom.xml - 2
使い捨てコンテナの試験を書く
Alpine 3.22を試験期間だけ起動し、readyログを最大30秒待つJUnit試験を書きます。
printf '%s\n' 'package demo;' 'import org.junit.jupiter.api.Test;' 'import org.testcontainers.containers.GenericContainer;' 'import org.testcontainers.junit.jupiter.Container;' 'import org.testcontainers.junit.jupiter.Testcontainers;' 'import org.testcontainers.containers.wait.strategy.Wait;' 'import java.time.Duration;' 'import org.testcontainers.utility.DockerImageName;' 'import static org.junit.jupiter.api.Assertions.assertTrue;' '@Testcontainers class ContainerTest {' ' @Container static GenericContainer<?> alpine = new GenericContainer<>(DockerImageName.parse("alpine:3.22")).withCommand("sh","-c","echo ready; sleep 30").waitingFor(Wait.forLogMessage(".*ready.*\n",1).withStartupTimeout(Duration.ofSeconds(30)));' ' @Test void capturesContainerOutput() { assertTrue(alpine.getLogs().contains("ready")); }' '}' > src/test/java/demo/ContainerTest.java - 3
コンテナの出力を検証する
JUnitを実行し、コンテナのログにreadyが含まれることを確認します。試験終了時の破棄はTestcontainersが管理します。
mvn -q -Dtest=ContainerTest test
成長
成長の推移 · 直近30日
8,749 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 6
- Open PR
- 213
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
カテゴリ
GitHubデータ
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Karate8,974 Stars
共通タグ 1件 · 共通カテゴリ 1件 · 同じ言語
Gherkin風DSLでAPI test・mock server・performance testを一つのframeworkへまとめる
Java - Playwright97,099 Stars
共通タグ 1件 · 共通カテゴリ 1件
Chromium・Firefox・WebKitを一つのAPI/Test runnerで操作し、E2E test・script・agent browser automationを実行する
TypeScript - Storybook91,200 Stars
共通タグ 1件 · 共通カテゴリ 1件
UI状態をstoryとして保存し、Docs・interaction test・AI toolへ再利用するfrontend workshop
TypeScript - Hoppscotch80,566 Stars
共通タグ 1件 · 共通カテゴリ 1件
REST・GraphQL・realtime request・collection testをWeb/Desktop/CLI/self-hostへ横断するAPI workspace
TypeScript - Cypress51,042 Stars
共通タグ 1件 · 共通カテゴリ 1件
browser向けE2E・component testをinteractive runnerとCLIから実行する
TypeScript - Jest45,500 Stars
共通タグ 1件 · 共通カテゴリ 1件
assertion・mock・watch・snapshot・worker isolationを一つのCLIへまとめるJavaScript testing framework
TypeScript
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。