私は仕事中に複数のサーバーを起動する統合テストを書いています。 IDEを使用した手動テストの中止など、可能な限りテスト後にシャットダウンされることを確認する必要があります。これを達成する方法はありますか?テストマニュアル停止後のロジックの実行方法は?
0
A
答えて
1
あなたは、シャットダウン・フックを登録することにより、ほぼすべて停止/停止のシナリオをカバーすることができます。
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
System.out.println("Gracefully shutting down the application/test");
}
});
誰かがkill -9
を発行した場合、この信号は、オペレーティングシステムによって処理されますしかし、その後もないshutdownHookは、キャプチャしますプロセスを強制終了/中止します。
1
良い選択は、例えば次のように、カスタムJUnitのランナーの内側にシャットダウンフックを使用することです:
import org.junit.runners.BlockJUnit4ClassRunner;
import org.junit.runners.model.InitializationError;
public class MyRunner extends BlockJUnit4ClassRunner {
public MyRunner(Class<?> klass) throws InitializationError {
super(klass);
Runtime.getRuntime().addShutdownHook(new Thread("app-shutdown-hook") {
@Override
public void run() {
// Your code here
System.out.println("End of test");
}
});
}
}
その後、テストを実行するには、このランナーを使用します。
@RunWith(MyRunner.class)
public class MyTest {
@Test
public void test() {
System.out.println("My test");
}
}
関連する問題
- 1. タイムアウト後にクエリの実行を停止する方法
- 2. テスト実行を停止した後にタスクを実行する方法は?
- 3. redirect_toが実行された後に実行を停止する方法
- 4. PHPスクリプト実行後にsetIntervalを停止する方法ajaxで実行する
- 5. 特定の時間の後にスクリプトの実行を停止する方法
- 6. Cで実行中のプログラムを停止する方法は?
- 7. セットアップ(デプロイメントプロジェクト)インストーラの実行後にプログラムの実行を停止する方法はありますか?
- 8. コード行の後にコード(java、multithreading)の実行が停止する
- 9. ReactJS Router - .push()、後で実行を停止する方法は?ここ
- 10. SSIS - パッケージ実行の停止
- 11. 停止window.locationの実行
- 12. 停止メソッドの実行
- 13. 実行コードの停止
- 14. 特定の行の後にスキャナを停止する方法
- 15. クライアントスクリプトの呼び出し後に実行を停止する方法
- 16. Pythonのコードを停止した後に再実行する方法
- 17. C#タイマー停止後のイベントハンドラーの停止
- 18. jQueryの停止実行イベントは[OK]を
- 19. 実行からPerformSelectorを一時停止する方法は?
- 20. eventlistenersの実行を停止する方法
- 21. ドッキングステーションでノードの実行を停止する方法
- 22. コントローラの実行コードを停止する方法phalcon php
- 23. cakephp 2.xでctpファイルの実行を停止する方法
- 24. Springでメソッドの実行を停止する方法AOP
- 25. メディアスキャナの実行中に一時停止する方法
- 26. Matlabで実行中のスクリプトを停止する方法
- 27. 既に実行中のアニメーションを停止する方法
- 28. Django関数の実行を停止する方法
- 29. Cで実行中のタスクを停止する方法
- 30. ブラウザレベルから実行中のPHPプロセスを停止する方法