統合テストの目的で、Maven Java プロジェクトの MongoDB データベースにいくつかのデータを事前に入力したいと考えています。これは、mongo シェルでスクリプトを手動で実行することで簡単に実現できますが ( ./mongo server:port/database --quiet my_script.js
)、Maven を使用してこれを行うにはどうすればよいですか?
3 に答える
テストを実行する前に、MongoDB データベースは実行されていますか? それとも、テストの一環としてサーバーを起動しますか?
どちらの場合でも、dbunit maven プラグインを使用して外部ファイルにテストデータをロードすることは可能だと思います。http://mojo.codehaus.org/dbunit-maven-plugin/operation-mojo.htmlをご覧ください。
Mongo Java APIを使用して、メソッドを使用してスクリプトをデータベースに実行できますDB.doEval()
。すでに実行中のデータベースがある場合は、テストセットアップの一部としてスクリプトの接続と実行を行うことができます。
とは言うものの、私のプロジェクトのいくつかでは、embedmongo MavenプラグインとともにMavenを使用しています。これにより、統合テストのためにmongoデータベースをその場で作成できます。それをスクリプトと組み合わせると、実行中の既存のMongoデータベースに依存しない代替ソリューションになる可能性があります。
これを実現するために、 embedmongo-maven-pluginを使用できるようになりました。mongoimport
mongoimport を実行する目的、または任意のmongo-scripts
js スクリプトを評価する目的があります。