PHPUnit 6から9の主な変更点

(最終更新:2021-03-05)

この記事は PHP その2 Advent Calendar 2020 - Qiita の17日目です。まだ、空きがありますので、興味のある方は気軽に参加してください。

PHPUnit、どんどんバージョンがあがってしまい、変更点がよくわからないので、まとめてみました。

PHPUnit 6

  • 2019/02/08 まで保守(EOL)

6.0

  • PHP 7.0 以上が必要
  • 名前空間
  • setUp()@before の後に実行
  • setUpBeforeClass()@beforeClass の後に実行
  • backupGlobals="false"
  • 廃止
    • --log-json
    • --tap
    • getMock()
    • setExpectedException()
    • setExpectedExceptionRegExp()

6.2

  • @runClassInSeparateProcess 追加

6.4

  • --list-tests 追加

PHPUnit 7

  • 2020/02/07 まで保守(EOL)

7.0

  • PHP 7.1 以上が必要
  • PHP 7.0 のサポート廃止

7.3

  • --order-by 追加
    • --order-by=random
    • --order-by=depends
    • --order-by=reverse

7.5

  • 追加
    • assertEqualsCanonicalizing()
    • assertEqualsIgnoringCase()
    • assertEqualsWithDelta()
    • assertIsArray()
    • assertIsBool()
    • assertIsFloat()
    • assertIsInt()
    • assertIsObject()
    • assertIsString()
    • assertStringContainsString()
    • assertStringContainsStringIgnoringCase()

PHPUnit 8

  • 2021/02/05 まで保守

8.0

  • PHP 7.2 以上が必要
  • PHP 7.1 のサポート廃止

8.3

  • 追加
    • MockBuilder::addMethods()
    • MockBuilder::onlyMethods()

8.4

  • TestCase::createStub() 追加

8.5

  • Xdebug 3 のサポート
  • 追加
    • assertFileEqualsCanonicalizing()
    • assertFileEqualsIgnoringCase()
    • assertStringEqualsFileCanonicalizing()
    • assertStringEqualsFileIgnoringCase()

PHPUnit 9

  • 2022/02/04 まで保守

9.0

  • PHP 7.3 以上が必要
  • PHP 7.2 のサポート廃止
  • 廃止
    • @expectedException*
    • expectExceptionMessageRegExp()
    • assertAttribute*()
    • assertInternalType()
    • assertEquals() のオプションパラメータ
  • MockBuilder::setMethods() が廃止予定

9.1

  • 追加
    • assertIsNotReadable()
    • assertIsNotWritable()
    • assertDirectoryDoesNotExist()
    • assertFileDoesNotExist()
    • assertMatchesRegularExpression()
    • assertDoesNotMatchRegularExpression()

9.2

  • テストダブルのコード生成で Union Type をサポート

9.3

  • PHP 8 のサポート
  • phpunit.xml でのコードカバレッジとロギング設定の変更
  • blacklist/whitelist の変更
    • PHPUnit\Util\ExcludeList 追加
    • PHPUnit\Util\Blacklist 廃止予定
    • TestCase::$backupGlobalsExcludeList 追加
    • TestCase::$backupGlobalsBlacklist 廃止予定
    • TestCase::$backupStaticAttributesExcludeList 追加
    • TestCase::$backupStaticAttributesBlacklist 廃止予定
    • --coverage-filter <directory> 追加
    • --whitelist <directory> 廃止予定
  • パスカバレッジのサポート
    • pathCoverage 属性
    • --path-coverage オプション

この記事は PHP その2 Advent Calendar 2020 - Qiita の17日目です。まだ、空きがありますので、興味のある方は気軽に参加してください。

関連

参考

PHPUnit6

PHPUnit7

PHPUnit8

PHPUnit9

Date: 2020/12/17

Tags: phpunit, testing, php