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