2015-06-03 38 views
1

我正在嘗試調試我的Codeception測試。使用XDebug + PHPStorm進行調試迫使我總是步入

使用我的調試平臺PHPStorm + XDebug的從瀏覽器中使用與正確IDE-KEY作爲cookie時偉大的工作。

但是,試圖調試codecept使用CLI我遇到以下問題時:

  • 如果我把一個斷點在我CEST類,行爲是正常的。我可以跳過功能並點擊「恢復」來停止調試。
  • 但每當我把一個斷點是在代碼(即控制器或我的命名空間的類),Xdebug的變得不可用:

如果我嘗試簡歷走出步驟,xdebug忽略我的請求,總是步入當前行。

這使得我的測試真的很難繼續。我已經嘗試過使用兩種平臺:我通常的vagrant + nginx + php5-fpm(帶有遠程調試),並且還有wamp(本地調試)。

任何幫助,將不勝感激!

-

更新: 嘛,這有什麼好做Codeception。我試着用PHPUnit進行測試,結果也是如此。似乎也不是CLI的問題,因爲我嘗試從瀏覽器中調試PHPUnit,但沒有運氣。

我想也許這是一個PHPStorm錯誤,但看Xdebug的日誌,我看到正確的方法被稱爲:

<- step_over -i 41 
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="step_over" transaction_id="41" status="break" reason="ok"> 

STEP_OVER叫,不step_into。所以也許是一個xdebug的bug?

奇怪的是,這並不總是發生。更改配置後,它有時不會發生,但然後錯誤似乎回來...

回答

3

我遇到了同樣的問題,並能夠修復它通過刪除.idea目錄並讓PHPStorm重新創建它。

這看起來像是一個笨手笨腳的修復程序,經過一些試驗和錯誤後,我能夠將問題追溯到PHPStorm中定義的手錶。

您應該可以通過刪除所有手錶來解決問題。您可能需要讓當前的調試會話完成,但下一個應該可以正常工作。

+0

我有同樣的問題,除了我的風暴走出來,而不是跨步(這導致了一個非常短的調試體驗)。我讀完解決方案後做的第一件事是重命名我的.idea目錄。令人驚訝的是它的工作(在我嘗試了幾個其他解決方案後根本沒有任何效果)。 然後我將該目錄命名爲.idea並返回問題。 之後,我試圖刪除所有的手錶,瞧,它再次工作。 非常感謝你,這讓我瘋狂! <3 – x3ro

2

我也遇到類似的問題。對我來說,無論我提出什麼要求,PHPStorm都會跳出來。

刪除所有手錶也解決了我的問題!