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