付録D アップグレード

PHPUnit 3.7 から PHPUnit 4.0 へのアップグレード

  • PHPUnit 3.5 以降で、static メソッドのスタブやモックの作成 を限定的にサポートしていましたが、 この機能は削除されました。 この機能がうまく動くのは、スタブあるいはモックの対象となる static メソッドが、同じクラスの別のメソッドから呼ばれた場合だけでした。 そんな限られた場面でしか使えない機能のせいで、 テストダブルのコードジェネレーターが複雑になってしまうのは、 好ましくないと考えたのです。 いままでこの機能を使ってテストをしていたコードは、 リファクタリングが必要になるかもしれません。 お手数をおかけして申し訳ございません。

  • PHPUnit_Framework_TestListener インターフェイスに addRiskyTest() が追加されました。 PHPUnit_Framework_TestListener インターフェイスを実装するクラスは、新たにこのメソッドを実装する必要があります。 たとえば PHPStorm 7 で PHPUnit 4 が使えないのは、これが原因です。

  • #552#573、 そして #582 の修正のために、PHPUnit の XML 設定ファイル上での相対パスの扱いを変更せざるを得ませんでした。 設定ファイル内での相対パスは、設定ファイルがある場所を基準として解決するようになりました。 PHPUnit をアップグレードする際には、 testSuiteLoaderFileprinterFiletestsuites/file、そして testsuites/exclude の相対パスもあわせて更新する必要があるかもしれません。

  • 二つの文字列を渡したときに、数値としての比較を実行しないようになりました

PHPUnit 4.0.0 以降は、PHPUnit の PEAR パッケージは単なる PHP Archive (PHAR) の配布手段に過ぎなくなります。PHPUnit が使う依存パッケージの大半は、 PEAR 経由ではリリースされなくなります。 最終的には、PHPUnit 自体も PEAR からはリリースしなくするつもりです。

PEAR インストーラーを使って PHPUnit 3.7 から PHPUnit 4.0 にアップデートすると、 旧版の PHPUnit が使っていた依存パッケージ (PHP_CodeCoverage や PHPUnit_MockObject など) が PEAR ディレクトリに残ったままになってしまいます。 これらの PEAR パッケージについては、個別にアンインストールすることをお勧めします。

PHPUnit 4.0 から PHPUnit 4.1 へのアップグレード

PHPUnit 4.1 から PHPUnit 4.2 へのアップグレード

このページの改善案をGitHubで提案してください!