我正在測試一個小型的代理服務器程序,我的問題是測試啓動代理到某個端口。每次我都可以使用不同的端口,並且我有兩臺服務器在同一端口上偵聽。我如何讓jUnit(在Eclipse中)一個接一個地運行測試,而不是同時運行?jUnit - 是否可以不同時運行測試?
回答
JUnit一次只能運行一個測試,除非您做了一些特殊的事情,否則它會做。您的情況可能發生的情況是,在第二次測試運行之前,爲一次測試啓動的代理不會停止,或者不會及時停止。
編輯:作爲對您的評論的迴應,有幾種方法可以解決這個問題。一種是將測試與類相同的包中,以便您可以使用包私有方法(這意味着它沒有public private或其他任何的聲明),關閉套接字並從測試中調用該方法,所以它已關閉,但它不是公共API的一部分。
另一種選擇是在構造函數中傳入套接字生成器。在生產中,你可能不會傳遞一個,而只是有一個內部實現,但是在測試中你傳遞一個由你的測試代碼創建的實現,並且測試代碼在測試結束時關閉它。
我以前見過這種類型的套接字問題。在不同的操作系統關閉一個端口可能需要更多的時間比虛擬機說。我會建議你讓測試進入休眠狀態和/或超時,直到他們可以打開服務器端口。我知道這是一個蹩腳的解決方案。
您也可以嘗試在綁定之前在ServerSocket上設置[SO_REUSEADDR](http://download.oracle.com/javase/6/docs/api/java/net/ServerSocket.html#setReuseAddress%28boolean%29)選項,這使得它可以跳過這個閉幕期。這是非常危險的;我不會在真正的運行系統中執行此操作,但它對於測試應該沒問題。 –
- 1. JUnit:運行同時測試
- 2. 是否可以在Saucelabs中同時運行Cucumber測試?
- 3. 是否可以同時運行Eclipse應用程序和Junit插件測試?
- 4. junit測試可以並行運行嗎?
- 5. 可以並行運行Junit測試嗎?
- 6. 測試運行時,我可以跳過JUnit測試嗎?
- 7. 是否可以重置JUnit測試?
- 8. 同時運行JUnit測試用例
- 9. JUnit和集成測試 - 是否可以在運行任何測試之前運行一個測試
- 10. 是否可以使用FitNesseSuite JUnit運行器來運行fitlibrary測試?
- 11. 是否可以將jUnit測試配置爲僅在聯機時運行?
- 12. Selenium RC測試:以JUnit測試運行時出錯,在以JUnit測試時以無錯誤測試
- 13. 可以同時運行JUnit理論嗎?
- 14. 是否可以使Eclipe中的測試類與JUnit測試用例同步?
- 15. 是否可以用junit進行壓力測試?
- 16. 是否可以在Eclipse中運行多個包中的JUnit測試?
- 17. 在jUnit測試運行期間是否可以禁用log4j異常輸出?
- 18. 不能運行調試robotium junit測試
- 19. 並行運行JUnit測試
- 20. 沒有可運行的方法,同時運行測試用例運行JUnit的插件測試
- 21. 是否可以在Eclipse IDE上運行geb-spock測試
- 22. 當RSpec完成測試時是否可以運行腳本
- 23. 是否可以同時使用鼻子多次運行一次測試?
- 24. 當運行junit測試時發生ZipException
- 25. 運行JUNIT測試用例時出錯
- 26. 運行Cucumber Junit測試時出錯:Intializationerror
- 27. 運行時錯誤,當JUnit測試
- 28. 運行Junit測試用例時OutofMemoryError
- 29. 運行junit測試一定的時間
- 30. java.lang.NoClassDefFoundError運行JUnit插件時,測試
有趣。任何方式來強制關閉過程?這是一項家庭作業,我們應該實現的API沒有關閉。 –