有没有办法从tearDown()中判断我的PHPUnit测试用例是否有失败?

时间:2011-12-06 22:13:58

标签: phpunit

对于我来说,检查PHPUnit我的测试执行是成功还是失败的最佳方法是什么?我试图为我的Selenium窗口截取屏幕截图,但仅在我的测试失败时。我尝试在onNotSuccessfulTest中截取屏幕截图,但是如果我总是在tearDown()中关闭我的窗口(我应该这样做),那么就没有会话可以在我的onNotSuccessfulTest函数中截取屏幕截图。

我正在考虑的解决方案是在tearDown中检查测试是成功还是失败,确定是否截取屏幕截图。

我正在使用PHPUnit 3.6和Facebook的php-webdriver,据我所知,我没有变量captureScreenshotOnFailure。

思想?

1 个答案:

答案 0 :(得分:12)

您可以查看getStatus()的返回值,并在所需条件下截取屏幕截图。

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

请参阅runBare(),了解根据测试方法抛出的异常设置状态的位置。您可能也希望为跳过的测试拍摄屏幕截图。