2011年12月13日火曜日

Jenkins 使って SeleniumRC のテストを実行しようとしたら PHPUnit が動かない

Jenkins 使って SeleniumRC のテストを実行しようとしたら PHPUnit が動かないという現象に出会ったのでメモ。
ちなみにバージョンは

  • Jekins : 1.442
  • SeleniumRC : selenium-server-standalone-2.12.0
  • PHPUnit : 3.6.4

まず、テスト実行すると Jenkins のテスト結果に


失敗

phpunit.xml. 過去 2ビルド失敗 ( 失敗#3 以降 ) 所要時間 0 ms 説明を記入 スタックトレース

と表示されたので続いて、コンソール出力を確認したところ Fatal error が発生しているとのこと。
PHP Fatal error:  Call to undefined method PHPUnit_Framework_ExpectationFailedException::setCustomMessage() in /usr/share/php/PHPUnit/Extensions/SeleniumTestCase.php on line 1068
ソースコードを見てみると、確かに setCustomMessage() が無い。。。
PHPUnit のバージョンが上がってこのメソッドが削除されたみたい。

その変更は↓で見て取れる。
https://github.com/sebastianbergmann/phpunit/commit/7b37221b785dd5aeda8794e8ffdcbfd8cf3aad7b#PHPUnit/Framework/ExpectationFailedException.php

なんで削除したのかとかまでは追ってないですが、とりあえずこのメソッドを追加してエラー回避してナントカ解決。

追加した内容↓

/**
 * @param string $customMessage
 * @since Method available since Release 3.4.0
 */
public function setCustomMessage($customMessage)
{
    $this->customMessage = $customMessage;
}

0 件のコメント:

コメントを投稿