PHPUnit Selenium2で失敗時にスクリーンショットを取得する方法
PHPUnit_Extensions_Selenium2TestCaseで失敗時にスクリーンショットを取得には、onNotSuccessfulTest()メソッドをオーバーライドし、PHPUnit_Extensions_Selenium2TestCase_ScreenshotListenerを使用します。
class WebTestCase extends PHPUnit_Extensions_Selenium2TestCase
{
public function onNotSuccessfulTest(Exception $e)
{
if ($e instanceof PHPUnit_Framework_AssertionFailedError) {
// 失敗時にスクリーンショットを保存
$listener = new PHPUnit_Extensions_Selenium2TestCase_ScreenshotListener(
TESTPATH . 'failure-screenshot' // 保存先のフォルダ
);
$listener->addFailure($this, $e, null);
}
parent::onNotSuccessfulTest($e);
}
…略…
また、テスト中に任意の時点でスクリーンショットを取得するには、currentScreenshot()メソッドを使います。
public function testScreenshotsCanBeTakenAtAnyMoment()
{
$this->url('html/test_open.html');
$screenshot = $this->currentScreenshot();
…略…
}
画像が文字列として取得できますので、ファイルに書き出せばOKです。
関連
Date: 2014/01/14