Junit テスト ケースが失敗したときに Greenmail が 3025 ポートを占有しないように、Greenmail を停止する方法を見つけようとしています。
単体テストが失敗すると、Junit は @After アノテーションをバイパスするように見え (間違っていれば正しい)、次のテストを続行します。残念ながら、他のテストでは @Before が実行され、ポート 3025 へのフックを試みる新しい greenmail サーバーが開始されるため、別のテストではエラーが発生します。
理想的には、実際に失敗したものにのみ失敗が表示され、Greenmail の問題が原因で 1 つまたは 2 つのテスト ケースが残りのテスト スイートに失敗しないようにする必要があります。
何か助けはありますか?
サンプルコード
@Before
public void setup() {
greenMail = new GreenMail(ServerSetupTest.SMTP);
greenMail.start();
}
@After
public void tearDown() {
greenMail.stop();
}
@Test
public void someFailTest() throws IOException{fail();};
@Test
public void someGoodTest(){assert(true);}; // greenmail busted so this also throws up