自4個月以來,我們用Laravel 4構建了一個複雜的Web應用程序,並具有良好的單元測試覆蓋率。現在我們有159個測試和592個斷言來防止迴歸,並允許我們輕鬆重構我們的應用程序。Laravel&PHPUnit:允許進程隔離以防止Mysql太多連接錯誤
漂亮的圖片,但由於幾天我們在過去的測試中出現以下錯誤:
PDOException: SQLSTATE[HY000] [1040] Too many connections
原因很簡單:所有的測試運行在相同的進程和MySQL只允許在一定數量的訪問同時。現在,我們有太多的測試。如果我在我的測試套件中刪除了一些測試,最後一個測試會通過。
解決方案可能是在進程隔離中運行PHPUnit,如下面的配置,但Laravel測試看起來並不像這樣啓動。我在每次測試得到其他錯誤:
PHPUnit_Framework_Exception: Notice: Constant LARAVEL_START already defined in /.../.../autoload.php on line 3
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="bootstrap/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="true"
stopOnFailure="false"
syntaxCheck="false"
>
</phpunit>
所以我的問題是:我怎麼可以配置Laravel測試與processIsolation="true"
工作或者你看到其他解決我的問題?
你解決了這個問題嗎? –
有關更多信息,請參閱https://plus.google.com/107528973720672293459/posts/bBC5CdKPFQ4。基本上,我不能配置Laravel和PHPUnit一起使用processIsolation,所以我只是在MySQL配置中將max_connections設置爲1000。不是很漂亮,但有效。 –