2011-04-22 82 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目錄。