重命名PHPUnit Selenium中失败时拍摄的屏幕截图

重命名PHPUnit Selenium中失败时拍摄的屏幕截图,selenium,phpunit,selenium-rc,Selenium,Phpunit,Selenium Rc,PHPUnit可以选择在Selenium测试用例失败时截图。然而,生成的屏幕截图文件名是一个散列的东西-我不知道到底是什么。虽然测试结果报告允许我将一个特定的失败测试用例与一个屏幕截图文件名相匹配,但使用起来很麻烦 如果我可以重命名屏幕截图,以使用来自失败的断言的消息以及时间戳(例如),这将使屏幕截图更易于交叉引用。是否有任何方法可以重命名生成的屏幕截图文件名?您可以尝试类似的方法(它适用于selenium2): 也取消选中 protected $captureScreenshotOnFailu

PHPUnit可以选择在Selenium测试用例失败时截图。然而,生成的屏幕截图文件名是一个散列的东西-我不知道到底是什么。虽然测试结果报告允许我将一个特定的失败测试用例与一个屏幕截图文件名相匹配,但使用起来很麻烦


如果我可以重命名屏幕截图,以使用来自失败的断言的消息以及时间戳(例如),这将使屏幕截图更易于交叉引用。是否有任何方法可以重命名生成的屏幕截图文件名?

您可以尝试类似的方法(它适用于selenium2):

也取消选中

protected $captureScreenshotOnFailure = FALSE;

您可以尝试类似的方法(它与硒M2配合使用):

也取消选中

protected $captureScreenshotOnFailure = FALSE;

我最终使用了@sectus的修改版答案:

public function onNotSuccessfulTest(Exception $e) {
    $file_name = '/' . date('Y-m-d_H-i-s') . ' ' . $this->getName() . '.png';
    file_put_contents($this->screenshotPath . $file_name, base64_decode($this->captureEntirePageScreenshotToString()));
    parent::onNotSuccessfulTest($e);
}
尽管条件签入
tearDown()
工作正常,但基于,我决定使用
onNotSuccessfulTest()
,因为它看起来更干净

文件名无法接受冒号
,否则我将从
文件获取内容
打开流失败:协议错误


函数
currentScreenshot
也不存在,因此我最终以不同的方式拍摄了屏幕截图。

我最终使用了@sectus答案的修改版本:

public function onNotSuccessfulTest(Exception $e) {
    $file_name = '/' . date('Y-m-d_H-i-s') . ' ' . $this->getName() . '.png';
    file_put_contents($this->screenshotPath . $file_name, base64_decode($this->captureEntirePageScreenshotToString()));
    parent::onNotSuccessfulTest($e);
}
尽管条件签入
tearDown()
工作正常,但基于,我决定使用
onNotSuccessfulTest()
,因为它看起来更干净

文件名无法接受冒号
,否则我将从
文件获取内容
打开流失败:协议错误


功能
currentScreenshot
也不存在,因此我最终根据另一种方法以不同的方式拍摄了截图。

我使用过的另一种方法,因为我仍然想使用
$this->screenshotUrl
$this->screenshotPath
来方便配置:

我从中重写了
截图


我使用的另一种方法,因为我仍然想使用
$this->screenshotUrl
$this->screenshotPath
来方便配置:

我从中重写了
截图


嘿,很抱歉回复太晚,但我从来没有解决过这个问题,忘记了它,只是最近才回来。我可以把你的代码片段放在哪里?它似乎应该位于测试执行的末尾,但是如果出现错误/失败,PHPUnit不会提前返回吗?我正在使用Selenium RC btw.@xiankai,尝试使用拆卸方法。嘿,很抱歉回复太晚,但我从未解决过这个问题,并且忘记了它,只是最近才回来。我可以把你的代码片段放在哪里?它似乎应该位于测试执行的末尾,但是如果出现错误/失败,PHPUnit不会提前返回吗?我用的是Selenium RC顺便说一句@xiankai,试着用拆卸法。