2011-04-22 33 views
1

如何在调试模式下中断测试时如何管理资源清理 in JUnit4(在JUnitRunner中/在TestCase中)?如何在调试模式下中断JUnit4测试时清除资源?

我使用Selenium WebDriver执行JUnit测试。当我在调试中运行测试时,如果通过单击停止按钮中断测试,那么我的导航器仍处于打开状态。我想通过调用一个方法关闭这个导航器。但我不知道在哪里调用这个方法。 事实上,我已经覆盖BlockJUnit4ClassRunner有我自己的亚军,我也实施了WebDriverTestCase。所以我可以做很多事情。

我试图执行我自己的SecurityManager和覆盖的方法checkExit(INT状态)但是,当我打断我的测试在调试模式下,安全管理器不叫(用System.exit()的,它工作正常)。

+0

你知道jvm正在退出吗?如果是,您可以添加一个关闭钩子以在jvm退出时运行自定义代码 – sbridges 2011-04-23 01:49:14

+1

当您单击停止按钮时,可能会停止运行测试的JVM。根据发送给过程的信号,可以安装信号处理程序来关闭导航器 – NamshubWriter 2011-04-28 02:47:58

回答

2

据我所知,当停止调试会话时,无法执行任何操作。

这种问题的唯一解决方案是:在设置中拆除!

这意味着,您应该检查您的@Before方法,如果旧的浏览器进程仍在运行,并且如果找到一个,请将其杀死,以使您创建新的WebDriver。 (请参阅How to get a list of current open windows/process with Java?Killing a process using Java

此外,您可能还想要删除临时目录中的webdriver目录。