生活の跡

個人的な備忘録

php composer.phar update したら 「Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested.」と言われた

概要

FuelPHPで単体テストの学習がてら PHPUnit の導入を試みていたのですが、その過程で composer.json に記載したパッケージを更新しようとしたら何やら表題の警告が出ました。

環境

Mac OS Catalina

ターミナルに打ち込んだコマンド

composer.json ファイルを準備して、同じディレクトリで下記コマンドを実行。

$ php composer.phar update

エラーメッセージ

Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested.

「phpunit/phpunit-mock-objects というパッケージは放棄されているから使うべきじゃないよ」という感じです。

解決方法

composer.json を以下のように書き換えて、再度php composer.phar updateしたら警告が出なくなりました。

{
〜省略〜
    "require-dev": {
        "fuel/docs": "1.8.*",
        "phpunit/phpunit": "8.4.*"  //ココに記載するバージョンを"3.7.*"から"8.4.*"に上げました
    },
〜省略〜
}

2019年になってFuelPHPを学び始めたため、2014年に出版された書籍を参考にいろいろ試しています。書籍に記載されていた例に従い phpunit のバージョンを 3.7 にしていましたが、今となっては古くて放棄されているパッケージが含まれていたのだと思われます。
ちなみに、8.4 にしたのは現時点で github のリリースノートを見たらそれが最新だったからです。

・github のリリースノート(phpunit)
Releases · sebastianbergmann/phpunit · GitHub

おわりに

エラーに「abandand」が含まれていたら、古いバージョンを指定していることが原因になっていることを疑うとよいかもしれません。

追記(2019/12/4)

警告は出なくなりましたが、Coreクラスのテストをするためにoil test --group=CoreしたらPHPUnit does not appear to be installed.と言われてしまいました。こちらは逆に新しいバージョンに対応していないようです。 どうしよう。。
ひとまずテストの実行ができない方が影響が大きいので、PHPUnitのバージョンを適当に5.7に下げて表題の警告は無視することにします。