在调试模式下中断测试时,如何在 JUnit4 (在JUnitRunner / TestCase中)中管理资源清理?
我通过实现JUnit测试来使用Selenium WebDriver。当我在调试中运行测试时,如果我通过单击停止按钮来中断测试,那么我的导航器仍处于打开状态。我想通过调用方法关闭此导航器。但我不知道在哪里调用这种方法。 事实上,我已经覆盖 BlockJUnit4ClassRunner 来拥有自己的Runner,而且我还实现了 WebDriverTestCase 。所以我可以做很多事情。
我尝试实现我自己的SecurityManager 并覆盖方法 checkExit(int status)但是,当我在调试模式中断我的测试时,不会调用SecurityManager(使用System.exit(),它可以正常工作)。
答案 0 :(得分:2)
据我所知,当您停止调试会话时,无法执行任何操作。
解决这类问题的唯一方法是:在设置中拆除!
这意味着,您应该检查@Before方法,如果旧的浏览器进程仍在运行,请创建一个新的WebDriver,如果找到一个,请将其删除。 (请参阅How to get a list of current open windows/process with Java?和Killing a process using Java)
此外,您可能还想删除临时目录中的webdriver目录。