2014-09-29 65 views
-1

guys:爲什麼我可以在無法構建項目的情況下成功運行Junit測試?

我有一個關於Junit測試作爲新手的問題:我試圖構建一個JAR項目。它失敗了,並報告Junit測試中的函數失敗,但是當我運行Junit測試時,它是成功的。我的隊友建議我檢查surefire-reports,並且我確實發現這個Junit測試有一個失敗報告。我想知道爲什麼我可以從eclipse正確運行Junit測試,但實際上失敗了?

+0

你可以發佈你的代碼嗎? – luboskrnac 2014-09-29 15:13:15

回答

0

通常是幾件事情之一:在環境

  • 差異:在Windows,Linux,目錄結構
  • 依賴關係:月食總是使用加載項目的依賴關係,但在Maven的編譯時,它會使用來自存儲庫的依賴關係。檢查所有依賴關係是否在repo中更新。
  • 線程化。 Eclipse一次運行一個測試。 Maven將同時運行多個。

沒有看到測試,並有更多的細節你env是很難給出任何更具體的。

0

沒有看到代碼,這是不可能的解決方案。然而,可爲什麼測試失敗有時,而不是其他的原因有很多:

  1. 不同的環境 - 不同版本的Java或其他環境問題(免費存儲,訪問文件系統上的文件)可能使測試工作一個環境,而不是另一個環境。
  2. 脆弱測試 - 測試有時而不是別人工作,由於較差的測試,只有作品有時
    • 使用並不總是有效的
    • 一天的時間隨機輸入數據 - 我見過測試只有在營業時間內通過,並在夜間生成失敗。
    • 超時 - 如果測試時間過長,依賴於調度程序或其他響應時間不穩定的系統,測試會失敗。
    • 線程問題/僵局
0

傢伙:謝謝你的幫助。我根據你的建議檢查了代碼。它看起來代碼是與計時問題或線程有關的。令我吃驚的是,遠程Oracle服務器中缺少測試檢查的數據,eclipse如何正確運行這個Junit函數對我來說依然神祕。當我在調試模式下追蹤它時,它表明斷言之一實際上應該失敗。我沒有改變環境,它是本地的tomcat/windows。我懷疑這是由於內存泄漏,或者正如有人所說,我應該運行此項目的整個Junit測試代碼來檢查,因爲可能有一些代碼共享數據。無論如何,感謝您的建議。我很抱歉,我不允許在線發佈敏感代碼。

Xin Li(Sam)

相關問題