Testcontainers でテスト用 Docker コンテナを自動管理する
Docker
テスト
Testcontainers
知識
運用
Testcontainers は、テスト実行時に Docker コンテナを自動で起動・管理するライブラリ。docker-compose の内容をコードで管理できる。
主なメリット:
- テストと同じ言語(TypeScript等)で定義でき、型安全・IDE補完が効く
- 条件分岐や動的な設定が可能
- テスト前後の処理(スキーマ適用等)を統合できる
- ポートはランダムにマッピングされるため競合しない
基本的な使い方:
typescript
import { GenericContainer } from 'testcontainers';
const container = await new GenericContainer('mysql:8.0.33')
.withEnvironment({ MYSQL_DATABASE: 'test_db' })
.withExposedPorts(3306)
.withReuse() // コンテナ再利用で起動時間短縮
.start();
// 動的にポートを取得
const port = container.getMappedPort(3306);