2014-07-09 24 views
0

在測試運行時,它看起來像是一些系統資源在Symfony 2.5中。單元測試:升級到symfony 2.5後出現「打開的文件太多」和「連接太多」的錯誤

我有一個包含200多個功能測試的Symfony2項目。 隨着Symfony的2.3和2.4的一切工作,但升級至2.5後,我開始收到一個錯誤(我使用的是Mac OS X):

failed to open stream: Too many open files 

我GOOGLE了一點,在系統配置改變MAX_FILES參數。

從那以後,我開始收到另一個錯誤:

Uncaught exception 'PDOException' with message 'SQLSTATE[08004] [1040] Too many connections' 

OK,我改變最大的連接參數在MySQL,但它看上去就像是升級後的錯誤。像一些系統資源持有。

降級到2.4後,一切都變好了。

也許現在我必須在某處手動關閉一些資源或連接?或者問題在別的地方?

UPD:運行單元測試之前Too many connection during unit testing

+0

因此,您設法通過在** my.cnf中增加'max_connections',通過增加** php.ini **中的'max_files' ...和'太多的連接數'來解決這兩個問題 - '太多打開的文件' ** ...現在你的問題到底是什麼?請澄清。 – nifr

+2

Nifr,我編輯了我的問題。無論如何,我認爲這是不正常的。我想了解原因。測試開始使用更多的資源或連接?但爲什麼?或者一些必須關閉的資源仍然打開?但爲什麼?我是否必須在代碼中的某處手動關閉它們?什麼改變了? – zIs

+0

聽起來像你的phpunit測試不要乾淨地關閉連接.. 你有一個'$ this-> em-> close();'在你的tearDown中嗎?在2.4和2.5之間,建議使用KernelTestCase而不是WebTestCase,不知道它是否會產生差異。請參閱http://symfony.com/doc/current/cookbook/testing/doctrine.html – Rufinus

回答

0

只需執行 「的ulimit -n 10000」:我發現同樣的問題一個問題。 另一個解決方案(我認爲最好的解決方案)是使用「內存」數據庫。您的測試將運行得更快。

+0

我與內存中的sqlite數據庫有相同的錯誤。 – Koen