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. NoClassDefFoundError実行時のJUnitテストのKotlinクラス
- 3. Windows上でMongoDBでNode.jsを実行する際の問題Azure
- 4. NUnit(FileNotFoundException)の実行時にアセンブリをロードする際の問題
- 5. asp.netの実行時にイメージをラッピングする際の問題
- 6. warファイルの実行時にJenkinsをインストールする際の問題
- 7. Cucumber-JVM - Appiumテストで@Afterを実行する際の問題
- 8. AWSデバイスファームでGalenテストを実行する際の問題
- 9. Guavaを実行する際の問題
- 10. 実際のデバイスでアプリを実行する際の問題
- 11. Springブート2.0.0.M6でJunitテストを実行する際のエラー
- 12. Swift:TitleForHeaderInSection実行時の問題
- 13. JUnitプラグインテスト実行時のjava.lang.NoClassDefFoundError
- 14. 実行時にjunitテストケースを実行するには?
- 15. 実行時にイメージを読み込む際の問題(ビルド後)
- 16. JUnitテストのみを実行するAntタスクはテストを実行しません
- 17. JUnitテストを実行するYMLファイル
- 18. コマンドラインでJunitテストを実行する
- 19. JenkinsでGroovy JUnitテストを実行する
- 20. JUnitテストケースを同時に実行する
- 21. Junitテスト実行時に初期化エラーが発生する
- 22. ゴラン同時実行問題
- 23. GWTTestCaseで現在のJunitテストを実行
- 24. SpringでJUnitテストを実行中のヌルサービス
- 25. JHipster&Gradle:STSのJunitテストを実行
- 26. pscpを実行するWindowsタスクスケジューラでPythonスクリプトを実行する際の問題
- 27. 問題JenkinsでNUnitテストを実行
- 28. 実行時のアンドロイドのメモリの問題
- 29. SQL Serverの同時実行の問題
- 30. Javaコードの実行時間の問題
unittestは、(JUnitフレームワークで行われたアプリケーションテストだけでない限り)通信を実際のデータベースにモックアウトする必要があります。 –
@TimothyTruckleあなたがmongoドライバを嘲笑することについて話しているなら、これをしないでください。ここでは、そのような行為をしない理由に関する記事があります。https://jaxenter.com/testing-the-database-layer-119366.html – tddmonkey
articles引数は、データベース*で動作をテストするときに有効です。データベース外のビジネスロジックを(* unit- *)テストするときは、実際にはデータベースアクセスを疑似化する必要があります。 –