www.m3tech.blog 2日前

Testcontainersで実DBを使う並列テスト基盤を設計する

Testcontainers上のPostgreSQLコンテナ内にスレッドごとのDatabaseを用意し、実DBを使ったテストを並列実行する基盤の設計事例。Schemaではなくデータベース単位で分離し、Migration済みTemplate DatabaseからCREATE DATABASE TEMPLATEで複製することでFlywayの実行を1回に抑え、テスト間のリセットはTRUNCATE+初期データ再投入(DROP&再作成より高速)を採用。pg_dumpで初期データを抽出する際のセッション設定混入やシーケンスのずれといった実装上のハマりどころも紹介している。

Testcontainers上のPostgreSQLコンテナ内にスレッドごとのDatabaseを用意し、実DBを使ったテストを並列実行する基盤の設計事例。Schemaではなくデータベース単位で分離し、Migration済みTemplate DatabaseからCREATE DATABASE TEMPLATEで複製することでFlywayの実行を1回に抑え、テスト間のリセットはTRUNCATE+初期データ再投入(DROP&再作成より高速)を採用。pg_dumpで初期データを抽出する際のセッション設定混入やシーケンスのずれといった実装上のハマりどころも紹介している。
↗ 元記事を開く