java - 测试手动停止后如何执行逻辑?

标签 java junit

我正在编写集成测试,该测试在工作期间启动多个服务器。我需要确保在任何可能的情况下,它们都会在测试后关闭,包括使用 IDE 手动测试停止。有办法实现吗?

最佳答案

您可以通过注册 Shutdown Hook 来覆盖几乎所有停止/停止场景:

Runtime.getRuntime().addShutdownHook(new Thread() {
    @Override
    public void run() {
        System.out.println("Gracefully shutting down the application/test");
    }
});

但是,如果有人发出kill -9,那么即使 shutdownHook 也不会捕获,因为该信号由操作系统处理,该信号会杀死/中止进程,甚至无需再次向其发送控制权.

关于java - 测试手动停止后如何执行逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42530479/

相关文章:

java - 这个循环有什么问题? - 安卓工作室

java - 如何模拟具体类的 void 方法

java - FindBugs:单元测试包依赖规则?

java - 尝试在空对象引用上调用虚拟方法 'void android.app.ActionBar.setHomeButtonEnabled(boolean)'

java - SharedPreferences putBoolean on change 不起作用

java - Spring自动将模型参数添加到url中

java - Android Junit 测试卡在 "Launching: Creating source locator..."

java - Maven:测试包不能成为其他测试包的依赖项?

java - 如何使用嵌套的for循环测试方法

java - 检查 Android 中的 UI 元素