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で初期データを抽出する際のセッション設定混入やシーケンスのずれといった実装上のハマりどころも紹介している。