概要
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に下げて表題の警告は無視することにします。