PHPUnit 6.0の主な変更点

PHPUnit 6.0.0が2017/02/03にリリースされました。その後立て続けにバージョンがあがり、02/08に6.0.6がリリースされています。

主な変更点

要件

PHP 7.0以上が必要になりました。

名前空間

PHPUnit_Framework_TestCaseがPHPUnit\Framework\TestCaseに変更されました。

もし、既存のテストコードを変更できない場合は、bootstrapに以下のハックを追加することで対応できます。

if (! class_exists('PHPUnit_Framework_TestCase')) {
    class_alias('PHPUnit\Framework\TestCase', 'PHPUnit_Framework_TestCase');
}

デフォルト設定

デフォルト設定が変更されました。

  • backupGlobals="true"でしたが、backupGlobals="false"に変更されました
  • 役に立たないテストがRiskyになります

既存のテストコードをそのまま動作させたい場合は、phpunit.xmlでbackupGlobals="true"を設定してください。

ただし、backupGlobals="false"の方がテストの実行が速くなりますので、falseでテストが通るようにした方が好ましいと思います。

デフォルトはfalseにして、必要なテストケースだけ@backupGlobals enabledにすることも可能です。

役に立たないテストは修正するか削除すべきでしょう。

ログ

  • --log-junitフォーマット変更
  • --log-json廃止

テストランナー

すべてのテストがパスするが警告がある場合、exitコードが1に変更されました。

廃止

  • $this->getMock()
  • $this->setExpectedException()および$this->setExpectedExceptionRegExp()
    • $this->expectException(), $this->expectExceptionCode(), $this->expectExceptionMessage(), $this->expectExceptionMessageRegExp() を使います
  • --tap

その他

  • PHP 5.3以上が要件のPHPUnit 4.8の保守が終了しました
  • PHP 5.6以上が要件のPHPUnit 5.7は2018/02/02まで保守されます

参考

Date: 2017/02/13

Tags: phpunit