タイトルが示すように、特定のテストごとにテスト サーバーを起動/停止したくないことを考慮して、Jetty Web サーバーを使用してアプリケーションをテストする最良の方法に興味があります。
私の知る限り、これらは解決策です:
Maven や Gradle などのビルド ツールを使用する場合は、
*.pomまたは*.gradleファイルで実行できます。- これには、アプリケーションで通常行うのとは異なる方法でテスト サーバーを作成する必要があるという欠点があります。
テスト スイートを作成し、
@BeforeClassおよび@AfterClassアノテーションを使用して、テストの前後にサーバーを起動/停止しますSuite。- ここでの欠点は、実行するテストを指定する「醜い」方法です。また、スイートに追加されたテストをスイートの外で実行しないように指定する必要があります (テストの重複実行を避けます)。Junit はまだこの機能を十分に備えていないと思います。
テストの開始時に静的な方法でサーバーを作成して起動し、
ShutDownメカニズムを使用して JVM に接続し、すべてのテストが完了するとサーバーを自動的に停止します。このメカニズムは Jetty で既に利用可能であるため、これが最適なソリューションと思われますが、- 欠点は、サーバーの停止を制御できないことです。実際には、ビルドツールの外部であっても、まったく別のスレッドで行われます (これには Gradle を使用します)。