2011-12-06 42 views
9

對於我來說,檢查PHPUnit的最佳方式是測試執行是成功還是失敗?我正在嘗試爲我的Selenium窗口截圖,但只有當我的測試失敗時。我嘗試了在onNotSuccessfulTest中截取屏幕截圖,但如果我總是在tearDown()中關閉窗口(我應該這樣做),那麼在我的onNotSuccessfulTest函數中沒有會話截圖。有沒有辦法通過tearDown()來判斷我的PHPUnit測試用例是否有失敗?

我正在考慮的解決方案涉及檢查tearDown中測試是成功還是失敗,確定是否拍攝屏幕截圖。

我使用PHPUnit 3.6和Facebook的php-webdriver,所以據我所知,我沒有變量captureScreenshotOnFailure。

想法?

回答

11

您可以從getStatus()檢查返回值,並在您所需的條件下截取屏幕截圖。

protected function tearDown() { 
    $status = $this->getStatus(); 
    if ($status == PHPUnit_Runner_BaseTestRunner::STATUS_ERROR 
      || $status == PHPUnit_Runner_BaseTestRunner::STATUS_FAILURE) { 
     // take a screenshot... 
    } 
} 

對於其中的地位是基於從測試方法拋出的異常設置見runBare()。你也可以爲跳過的測試做一個截圖。

相關問題