最近,我開始面對我的項目中包含大約650單元測試的一個問題。
當我一次運行所有這些測試時,單元測試運行結束時的一些測試開始失敗,出現System.OutOfMemoryException
。
當我再次運行失敗的測試時,它們會通過。
分析:
我看了看任務管理器運行我的測試,同時要看到,vstest.executionengine.x86.exe
一直增加,直到達到1330 MB的內存。然後,由於內存不足異常,測試開始失敗。
當然可以肯定的是,我的一些類可能會有內存泄漏,但我測試的類中有90%沒有可能導致內存泄漏的代碼。
我的許多測試類的沒有任何TestInitialize
或TestCleanup
方法,因爲我的課的創建直接完成TestMethod
測試內部,因爲在測試這些類沒有實現IDiposable
(因爲沒有代碼,可以導致泄漏)。
問題:
現在我不知道我可能是做錯了。但是我想知道即使在測試類的所有測試都運行之後,測試對象仍然保留在內存中嗎?
有沒有人遇到過這個問題,或者可以指點我應該/可以做些什麼來修復或找到問題?
謝謝!