1

PHPUnit には、Selenium テスト ケースの失敗時にスクリーンショットを撮るオプションがあります。ただし、生成されたスクリーンショットのファイル名は何かのハッシュです。正確にはわかりません。テスト結果レポートでは、失敗した特定のテスト ケースとスクリーンショットのファイル名を一致させることができますが、これを使用するのは面倒です。

たとえば、失敗したアサートからのメッセージとタイムスタンプを使用するようにスクリーンショットの名前を変更できれば、スクリーンショットの相互参照がはるかに簡単になります。生成されたスクリーンショットのファイル名を変更する方法はありますか?

4

3 に答える 3

1

@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);
}

条件付きチェックインは正常に機能しますが、 Extended phpunit error messagetearDown()に基づいて、よりクリーンに見えたので使用することにしました。onNotSuccessfulTest()

ファイル名にコロン:を使用できませんでした。そうしないと、次のエラー メッセージが表示されますfile_get_contentsfailed to open stream: Protocol error

関数currentScreenshotも存在しなかったので、http://www.devinzuczek.com/2011/08/take-a-screenshot-with-phpunit-and-selenium-rc/に従って別の方法でスクリーンショットを撮ることになりました.

于 2013-12-06T08:37:03.647 に答える