単体テストをH2からPostgresqlに移行しようとしています。
現在、H2は、各接続が一意のスキーマにマップされ、テーブルが作成され、テストが実行され、スキーマが削除されるように、メモリ内スキーマを提供します。スキーマの作成と破棄は、H2によって自動的に処理されます。
単体テストは同時に実行されます。
Postgresqlでこれを行う最良の方法は何ですか?具体的には
- 接続ごとに一意のスキーマを取得するにはどうすればよいですか?
- テストフレームワークは一意の名前を生成する必要がありますか、またはこれを行うための組み込みメカニズムはありますか?
- 接続がドロップされたときにスキーマが確実にドロップされるようにするにはどうすればよいですか?
- 単体テストが終了したときにスキーマがぶら下がってしまいたくありません。
- どのようなアプローチで最高のパフォーマンスが得られますか?
- 1秒あたり数十のスキーマを作成/ドロップする必要があります。
更新:ここで関連する回答を見つけましたが、単体テストを実行しているプロセスが強制終了された場合にスキーマを削除できません。
pg_temp
、単一のスキーマは正しいのでしょうか?それで、同時ユニットテストを実行すると、お互いのテーブル/データが破壊されませんか?