LoginSignup
2
0

More than 3 years have passed since last update.

phpunit8に上げたらPHPUnit does not appear to be installed.と言われた

Posted at

プロジェクトでphp7.3、fuelphp1.8.2を使っています。
しかし、phpunitのバージョンが5.6と古く、もうすぐサポートが切れてしまうためバージョンアップした際に出たエラーの解決について書いていきます。

前提

バージョンアップが完了しているわけではありません。
怒られたので、それの解決方法だけです。
もしかしたら、別の方法があるかもしれないので、その場合は是非コメントお願いします。

やったこと

本当はdocker内でコマンド叩いていますが、長くなってしまうので必要なところだけ抜粋します。
phpunitのバージョンアップに伴って依存パッケージの更新も必要だったため更新しています。

./composer.phar remove phpunit/dbunit
./composer.phar remove phpunit/phpunit
./composer.phar remove phpunit/php-timer
./composer.phar require --dev phpunit/phpunit ^8.5.2
./composer.phar require --dev phpunit/php-timer ^2.1.2
./composer.phar require --dev kornrunner/dbunit

上のコマンドを入れ終わった後、testを実行すると、エラーが発生する。
5.6の時はこれで実行できていました。

$ php oil test
Uncaught exception Oil\Exception: 0 - PHPUnit does not appear to be installed.

    Please visit https://phpunit.de and install. in /省略/fuel/packages/oil/classes/command.php on line 189
Callstack:
#0 省略/oil(68): Oil\Command::init(Array)
#1 {main}

解決方法

公式サイトの方にバージョンの確認方法載っていたので、それで確認。
バージョンアップは問題なくされている。
https://phpunit.de/getting-started/phpunit-8.html

$ ./vendor/bin/phpunit --version
PHPUnit 8.5.2 by Sebastian Bergmann and contributors.

今までとパスが変わった?みたいです。
改めて、公式に沿って実行します。

$ ./fuel/vendor/bin/phpunit --bootstrap fuel/vendor/autoload.php ./fuel/app/tests
PHPUnit 8.5.2 by Sebastian Bergmann and contributors.



Time: 150 ms, Memory: 4.00 MB

No tests executed!

一旦、タイトルのエラーが出なくなりました。
ただ、テストが一つも実行されていません。

ファイルを指定せずにテストを実行する場合には、ファイル名を *Test.phpとしないといけないようです。。
これ全ファイルに適用するの結構たいへん。。
1ファイルだけ変更したところ、正しく実行されました。(エラーが出ている状態)

Using tests instead of tests/EmailTest would instruct the PHPUnit command-line test runner to execute all tests found declared in *Test.php sourcecode files in the tests directory.

まとめ

バージョンアップを始めた直後にphpunit9のリリースがされたため、これからアップデートをする方はそちらへのアップデートを検討されると良いかと思います。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0