我正在爲一個複雜項目運行一個大的單元測試存儲庫。 這個項目有一些事情,不要有大的測試數量以及玩:單元測試的臨時對象池?
- 緩存(memoization的)導致的對象不是測試
- 在模塊級的複雜對象是單身,並可能收集之間被釋放數據時使用
我對每個測試(或至少每個測試套件)有自己的「蟒蛇 - 對象池」,並能夠釋放它後感興趣。
排序一個python-垃圾收集,問題解決方法的。
我想象一個python自包含的臨時性和可丟棄解釋器,它可以爲我運行某些代碼,之後我可以調用「interpreter.free()」並確保它不泄漏。此
一個艱難的解決方案,我發現是通過子用鼻子或實現這個每個我需要一個解釋消耗將運行一個測試時間。因此每個測試都會變成「fork_and_run(條件)」,並且在原始進程中沒有內存泄漏。
還看見鼻子單一的過程每個測試和sequantially運行測試 - 儘管人們提到它有時會凍結中途 - 那麼好玩..
是否有一個簡單的解決方案?
P.S. 我不感興趣,通過大量的其他民族的代碼去,並試圖讓所有的緩存/對象/項目是可以完全清除內存管理對象。
P.P.S 我們的PROD代碼也爲每項工作創造了一個新的流程,這非常舒適,因爲我們不必喋喋不休地「永遠生存」和其他可怕的故事。