当我在调试模式下中断 JUnit4 测试时如何清理资源?

发布于 2024-11-02 18:39:05 字数 443 浏览 2 评论 0原文

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

我通过实现 JUnit 测试来使用 Selenium WebDriver。当我在调试中运行测试时,如果我通过单击停止按钮中断测试,那么我的导航器仍然打开。我想通过调用一个方法来关闭这个导航器。但我不知道在哪里调用这个方法。 事实上,我已经重写了 BlockJUnit4ClassRunner 来拥有自己的 Runner,并且还实现了 WebDriverTestCase。所以我可以做很多事情。

我尝试实现我自己的SecurityManager并重写方法checkExit(int status)但是,当我在调试模式下中断测试时,SecurityManager不会被调用(使用系统.exit(),它工作正常)。

How do you manage resource clean up in JUnit4 (in a JUnitRunner / in a TestCase) when you interrupt the test in debug mode ?

I use Selenium WebDriver by implementing JUnit tests. When I run the test in debug, if I interrupt the test by clicking on the stop button, then my navigator is still open. I would like to close this navigator by calling a method. But I don't know where calling this method.
In fact, I've overrided BlockJUnit4ClassRunner to have my own Runner and I also have implemented a WebDriverTestCase. So I can do a lot of things.

I tried to implement my own SecurityManager and override the method checkExit(int status) but, when I interrupt my test in debug mode, the SecurityManager is not called (with a System.exit(), it works correctly).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

何其悲哀 2024-11-09 18:39:05

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

解决此类问题的唯一方法是:在设置中进行拆卸!

这意味着,在创建新的 WebDriver 之前,您应该检查您的 @Before 方法,看看旧的浏览器进程是否仍在运行,如果找到一个,请将其终止。 (请参阅如何获取当前使用 Java 打开的窗口/进程?使用 Java 终止进程

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

As far as I know, there is no way to execute anything, when you stop a debug session.

The only solution to this kind of problem is: Do the tear down in the set up!

This means, you should check in your @Before method, bevor you create a new WebDriver, if an old browser process is still running, and if you find one, kill it. (See How to get a list of current open windows/process with Java? and Killing a process using Java)

Furthermore you probably also want to delete the webdriver directories in your temp directory.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文