JUnitテストの実行時に自動的に実行され、テストが完了すると停止する必要があります。私はmavenのmongoDBプラグインを使用しようとしましたが、mongoDBは実行されていないようです。どんな助け?JUnitテストの実行時にMongoDBを実行する際の問題
答えて
。
@BeforeAll
/@Before
句を使用して起動し、後で停止してすべてをクリーンアップすることができます。 http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-mongo-embedded
は、そうでなければ、あなた自身の組み込みモンゴDBをセットアップするのGithub上のドキュメントを使用することができます。
春ブーツは、内蔵の自動設定がそうあなただけembed.mongoし、依存関係を追加する必要があります。
単体テストの場合は、データベース統合のモックアップを試みる必要があります。しかし、私はこれを一度に処理しなければならず、Mongo/Javaプロジェクト間の統合をテストする必要がありました。 Mongoのプラグインは私のために働いていませんでした。
オプション1(Docker):私のビルドとデプロイメントスタック(Maven、Jenkins、Docker)では、私にとって最も簡単なことは、次の2つの方法がありました。ビルド前のステップとしてMongoコンテナを起動し、統合環境設定でビルドを実行し、ポストビルドステップとしてコンテナをシャットダウンします。さらに、テストする必要がある特定のデータがある場合は、そのデータを持つコンテナを構築できます。
オプション2(Maven/Mongoのみ):Mavenのpre-integration-tests
ライフサイクルフェーズでは、Maven exec pluginを使用してオペレーティングシステムを呼び出し、Mongoを起動します。テストを実行し、Mongoを必要とするものがintegration-test
フェーズで実行されていることを確認します。その後、post-integration-test
フェーズでMongoを終了します。あなたのテストによっては、Mongoインスタンスの状態を変更すると、これは難しいかもしれません。それが問題であれば、Mongoを再初期化/破棄するためのスクリプトを記述し、上記のフェーズでこれらのスクリプトを呼び出すことができます。これは、基本的には現在のJVMに埋め込まモンゴDBを開始しhttps://github.com/flapdoodle-oss/de.flapdoodle.embed.mongo
:あなたはこのために使用することができますembed.mongo
- 1. コマンドラインでjunitテストファイルをビルドして実行する際の問題
- 2. Windows上でMongoDBでNode.jsを実行する際の問題Azure
- 3. asp.netの実行時にイメージをラッピングする際の問題
- 4. NUnit(FileNotFoundException)の実行時にアセンブリをロードする際の問題
- 5. AWSデバイスファームでGalenテストを実行する際の問題
- 6. Guavaを実行する際の問題
- 7. Swift:TitleForHeaderInSection実行時の問題
- 8. JUnitプラグインテスト実行時のjava.lang.NoClassDefFoundError
- 9. 実行時にjunitテストケースを実行するには?
- 10. JUnitテストのみを実行するAntタスクはテストを実行しません
- 11. 実行時にイメージを読み込む際の問題(ビルド後)
- 12. コマンドラインでJunitテストを実行する
- 13. JenkinsでGroovy JUnitテストを実行する
- 14. JUnitテストを実行するYMLファイル
- 15. JUnitテストケースを同時に実行する
- 16. GWTTestCaseで現在のJunitテストを実行
- 17. SpringでJUnitテストを実行中のヌルサービス
- 18. pscpを実行するWindowsタスクスケジューラでPythonスクリプトを実行する際の問題
- 19. 実行時のアンドロイドのメモリの問題
- 20. SQL Serverの同時実行の問題
- 21. サブクエリー実行時のTeradataスプールスペースの問題
- 22. テスト中に実際のphoenixサーバを実行するには?
- 23. ロック/同時実行の問題
- 24. Psycopg2同時実行の問題
- 25. JBossキャッシュ。同時実行の問題
- 26. linq to sql同時実行の問題!
- 27. クエリ実行時間の問題
- 28. 実行可能ファイルにperlスクリプトをコンパイルする際の問題
- 29. Eclipseで常にクリーン/ビルドを実行する際の問題
- 30. 更新後にAndroidプロジェクトを実行する際の問題
unittestは、(JUnitフレームワークで行われたアプリケーションテストだけでない限り)通信を実際のデータベースにモックアウトする必要があります。 –
@TimothyTruckleあなたがmongoドライバを嘲笑することについて話しているなら、これをしないでください。ここでは、そのような行為をしない理由に関する記事があります。https://jaxenter.com/testing-the-database-layer-119366.html – tddmonkey
articles引数は、データベース*で動作をテストするときに有効です。データベース外のビジネスロジックを(* unit- *)テストするときは、実際にはデータベースアクセスを疑似化する必要があります。 –