在phpMyAdmin我們遭受了奇怪的測試套減速一段時間。我們已經能夠將問題追溯到啓用xdebug的情況(用於代碼覆蓋),並且在ob_start/ob_end_clean塊內存在錯誤。去除這些中的任何一個都會大大減少測試套件的時間。如何找到爲什麼phpunit測試套件與xdebug太慢?
xdebug enabled disabled
ob_start failure tests
enabled 20 min 15 s
disabled 1 min 15 s
這只是爲了顯示差異有多大,以及爲什麼我們想擺脫這一點。
xdebug enabled disabled
ob_start failure tests
enabled 7.2 s 0.1 s
disabled 2.6 s 0.1 s
這裏的區別是一個測試除去單個數據集(你會尋找到來源的情況下,這是最後一個數據:
在規模較小的,這可以用單一的測試test/classes/PMA_Advisor_test.php
顯示設置),並導致測試不到一半的時間!更新:在這種特殊情況下,問題可以使用xdebug.default_enable=0
來緩解,但對於整個測試套件來說,這並沒有太大的改變。乍看之下,它確實看起來像xdebug中的一些錯誤,但我們一直無法生成比上面更小的測試用例,聽起來很可疑。任何想法如何進一步調查問題進一步瞭解如何確定實際造成這種緩慢的原因?
爲什麼你認爲這是太慢? xdebug報告錯誤是什麼?也許它只是記錄更多的信息,而不是沒有錯誤。 – Martijn 2012-07-16 11:34:20
因爲它不用那麼慢:-)。作爲測試套件唯一使用xdebug的是覆蓋率分析,我不希望它會因錯誤而放慢速度。 – 2012-07-16 11:41:35
其實''xdebug.default_enable = 0'去掉了單個測試用例的差異,所以堆棧跟蹤集合確實是cuplrit的一個,感謝提示!不幸的是,它並沒有完整的測試套件,所以還有其他一些問題。 – 2012-07-16 12:03:57