您需要將xdebug配置添加到您的php.ini中,這樣如果phpunit再次調用php解釋器(b/c of @runTestsInSeparateProcesses
)在單獨的進程中運行測試,則會自動激活xdebug(遠程調試設置等),而沒有任何其他參數傳遞給可執行文件。
如果您已完成此操作(可能不是您的問題),請確保您的IDE正在接受多個單一的xdebug連接(xdebug連接限制或類似)。這是必要的,因爲新的PHP進程將啓動需要額外連接的新xdebug遠程會話。如果連接沒有完成,xdebug將等待連接限制爲1(1),您將看到PHP掛起。
這種方法的缺點是,xdebug將永遠加載,這將增加約。在CLI中執行PHP 10%的性能。
只要這是在開發框中,您可以創建一些腳本,您可以運行該腳本來爲已安裝的PHP二進制文件打開和關閉xdebug默認配置。
Composer不受此影響,因爲它會在禁用xdebug的情況下重新啓動,但大多數其他PHP cli工具不會這樣做(也許不需要它,因爲有很多可用的性能和缺點可以忽略不計,對於執行大量對象創建的PHP腳本來說,這是非常重要的)。
所以,設置你的php.ini並啓用xdebug。一個好的IDE會顯示它自動添加的設置(PHP cli -d
選項),只需將它們添加到您的php.ini
中,您應該對該測試場景適用。
當你得到它的工作,思考如何在飛行中禁止設置(sed
是非常方便的是,尤其是-i
[編輯在地方]在GNU系統,#1應該讓你高興的基礎在這裏, Windows我不能說什麼工作得很好,萬一你想知道)。
附加說明:我不能具體說Netbeans,因爲我沒有使用它,但是與Phpstorm的情況完全相同(我假設是真誠的),因爲它在調用測試時將xdebug添加到PHP配置中(調試,覆蓋)以及導致其他PHP腳本的子進程無法調試,除非我將該添加的xdebug配置放入php.ini
。
謝謝。我會繼續前進+1並接受這個答案,因爲它看起來像你知道你在說什麼。我會閱讀並稍後嘗試。謝謝! – Ryan
不要接受它(或以後不接受它),除非它回答了*你的問題。我可能只是一個好的談話者,但你的問題可能會有所不同。只是說。 ;) – hakre