我正在處理一個CakePHP項目。最近我將UnitTests添加到該項目中。我的系統配置是:CakePHP UnitTest花費時間太長〜37分鐘
- PHPUnit 3.7.24。
- Cake Versio 2.4.2。
- 具有4核Intel(R)Xeon(R)CPU E5-2609 v2 @ 2.50GHz的VM Server
- 9.1-RC3 FreeBSD。
但我的一個測試運行速度非常慢。它需要約37分鐘才能完成。我在本次測試使用10個夾具但我不從另一個數據庫加載記錄他們, 因此我的燈具類僅包含這一行:
public $import = array('model' => 'Model', 'records' => false);
測試包含三個testAction() - 調用。其中兩個跑得快,第三個跑不了。第三個呼叫運行的控制器操作,其執行以下操作:
- 逃亡二查找查詢上表以〜2項
- 得到使用ifconfig webvserver IP
- 連接到每SSH另一個虛擬機(帶phpseclib)
- 複製3.6 MB文件從網絡服務器scp將虛擬機
- 運行一個python腳本
- 複製它的JSON輸出回網絡服務器
- 保存在網絡服務器的數據庫中的JSON信息(< 40表項)
- 刪除虛擬機上的Python腳本結果
當我運行通過點擊圖標在webinterface相同的控制器動作,然後將其在< 1 mniute後完成。但正如我所說的,在單元測試 內運行每個testAction()需要大約37分鐘。
- 我已經嘗試設置Configure :: write('debug',0);,沒有任何影響。
- 我按照「蛋糕測試」命令在控制檯中運行了測試,沒有任何性能提升。
- 我dereased型號 - >遞歸像我所能得到的所有信息
任何想法如何上這個單元測試?我的其他UnitTests只需要1分鐘就可以拿到<。
就像Ilie Pandia說的那樣,知道腳本的哪一部分會導致速度減慢會很好。它是「運行兩個查詢查詢」或「使用ifconfig獲取webvserver ip」還是其他? – neubert