[解決済み] Java JUnitテストのためのPostgreSQLの組み込み
質問内容
PostgreSql駆動のアプリケーションをユニットテストするために、PostgreSqlを埋め込むことはできますか?
PostgreSqlにはいくつかの方言があるので、他の組み込みデータベースよりも組み込みPostgreSqlそのものを使ったほうがよいでしょう。
組み込み型といっても、必ずしもJVMのプロセスに組み込まなければならないわけではありません。また、必ずしもインメモリ永続化を使用する必要はありません。依存関係管理(Maven, Gradle)によって自動的にロードされ、ローカルにPostgreSQLサーバをインストールし設定しなくても、すべてのマシンでユニットテストが実行できるようにする必要があります。
解決するには?
プロセス中にロード可能なデータベースという意味で、PostgreSQLを組み込んだものは存在しません。PostgreSQLはプロセス指向で、各バックエンドは1つのスレッドを持ち、複数のプロセスを生成して作業を行います。これはライブラリとしては意味をなしません。
H2データベース サポート PostgreSQL SQL方言の限定されたサブセット と PgJDBC ドライバを使用することです。
何をするのか
できること
するのは
initdb
新しい一時的なデータベース
で起動します。
pg_ctl
を他のインスタンスと衝突しないようにランダムなポートで実行し、テストを実行し、それから
pg_ctl
で停止させ、最後に一時的なデータベースを削除します。
I を強くお勧めします。 を実行することで、一時的なpostgres デフォルト以外のポートで そのため、テストを実行するマシンにローカルにインストールされた PostgreSQL と衝突する危険はありません。
(そこで は の意味での埋め込みPostgreSQLです。 ecpg は、本質的にPostgreSQLの クライアント C言語で埋め込まれた ソースコード をプリプロセッサーベースのC言語拡張として使用することができます。それでもサーバーが必要で、ちょっと使いにくいので、あまりお勧めできません。これは主に、他の様々なデータベースからの移植を容易にするために存在しています)。
関連
-
[解決済み] それぞれが外部キーである要素の PostgreSQL 配列
-
[解決済み] JUnit 4のテストで、ある例外が投げられたことをどのように断言しますか?
-
[解決済み] PostgreSQLの場合。PostgreSQLのテーブルを表示する
-
[解決済み] PostgreSQLの "DESCRIBE TABLE"
-
[解決済み] PostgreSQL コマンドラインユーティリティ: psql を終了する方法
-
[解決済み] PostgreSQLのユーザーパスワードを変更する方法を教えてください。
-
[解決済み] どのバージョンのPostgreSQLを使用していますか?
-
[解決済み] PostgreSQLでデータベースのコピーを作成する
-
[解決済み] Mavenが実行するJUnitテストを見つけ出せない
-
[解決済み】Mac OS XでPostgreSQLサーバーを起動するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】csvファイルをpostgresqlにインポートしようとすると、「予想される最後の列の後に余分なデータがある」。
-
[解決済み】PG COPY エラー: 整数の入力構文が無効です
-
[解決済み] psql: FATAL: データベース "<user>" が存在しない
-
[解決済み] コマンドを実行すると、"no relations found "と表示されるのですが。
-
[解決済み] Postgres のデータベース削除エラー: pq: 現在開いているデータベースを削除できません。
-
[解決済み] Java JUnitテストのためのPostgreSQLの組み込み
-
[解決済み] それぞれが外部キーである要素の PostgreSQL 配列
-
[解決済み] pgadmin4 : postgresql アプリケーションサーバーに接続できませんでした。
-
PostgreSQL学習パート5 - ローカルpsqlのパスワードの有無の設定
-
複雑なクエリのPG実行でERROR: unknownからtextへの変換関数が見つからなかった