2009-07-28 129 views
2

所以我有一組單元/集成測試和一組Selenium RC的測試,我的套件的一部分。當我使用PHPUnit將它們一起運行時,在正常運行期間,它會在運行的最後階段收到Segmentation fault錯誤消息,並開始生成日誌文件。有趣的部分是,如果我只運行單元測試,或只是硒rc測試一切正常。我相當確定這對我的代碼庫不是問題,因爲我可以直觀地看到所有的測試都通過了。正如我所說的,錯誤發生在結果生成階段。硒RC測試+單元測試拋出一個賽格故障

我使用的代碼覆蓋率的單元測試,但不是爲Selenium測試(由離開$ coverageScriptUrl財產空在我的硒對象)。

我真的在抓救命稻草這裏,因爲我從來沒有來診斷錯誤,沒有文件或行號。有沒有我查看更多信息的地方?有人能指引我朝着正確的方向嗎? php錯誤日誌是空的。

任何想法?

回答

3

我在同事面前遇到了同樣的問題:有一天,我們開始出現段錯誤,顯然沒有理由,因爲相同的代碼在另一臺機器上運行正常:-(

我們最終移除代碼覆蓋率(因爲它不是對我們來說非常有用;太低反正)

夫婦的事情,你可以嘗試:

  • 嘗試用Xdebug的最新版本(有時,這些應該糾正噸的東西那樣)
  • 嘗試使用舊版本的Xdebug(爲什麼不? )
  • 想想上的PHPUnit在兩次執行分裂測試套件:無代碼覆蓋
    • 執行一個代碼覆蓋率,爲單元測試
    • 一個執行(只要你不無論如何使用它)對於功能性的測試

另一個THNG可能會去嘗試,而不是穩定的2.0.x版本與Xdebug的2.1的CVS版本;但不知道會有幫助(例如http://www.phpunit.de/ticket/513

在Xdebug的Mantis BT上有幾個與segfault相關的bug報告;其中一些沒有解決。
例如:

無論如何,祝你好運......

<(如果你發現什麼導致問題,我很感興趣;-))

+0

我將xdebug的版本從2.0.5升級到2.1,並且segfault消失了。感謝指針! – 2009-07-29 12:30:47

0

PHP中的Segfaults肯定會很棘手。

由於胡亂猜測,你運行PHPUnit的3.4?看起來像there's a bug在幾周前使用$this->selectWindow()調用和null參數與Selenium集成報告。

+0

感謝您的答覆。我實際上使用3.3的PHPUnit,並沒有在任何地方使用selectWindow()。 – 2009-07-28 23:03:29

0

如果Xdebug的是造成段錯誤,你可以切換到使用測試覆蓋工具不使用Xdebug的所有,只是一個標準的PHP服務器:

Semantic Designs PHP Test Coverage