今日 Yii Framework で単体テストを学習していたとき、「phpunit Unit/DBTest.php」コマンドを実行すると常に次のエラーが発生しました。
しかし、ドキュメントに従って PHPUnit パッケージをインストールしましたが、後で、インストールプロセス中にネットワークの問題により依存パッケージの 1 つでエラーが発生したことに気付きました。しかし、他のパッケージはすべてインストールが成功したと報告したので、失敗したパッケージ PHP_CodeCoverage を再インストールしました。その後、ユニットを実行すると上記のエラーが発生したため、ゆっくり調べて、次の手順を実行した後、問題が発生しました。ついに解決されました。
1. pear の auto_discover オプションをオンにする
$ sudo pear config-set auto_discover 12. インストールされている phpunit とその依存パッケージを確認します
$ sudo pear list -a インストールされているパッケージ、チャネル pear.phpunit.de: === = ======================================== パッケージ バージョン 状態 DbUnit 1.0.3 安定版 File_Iterator 1.2 .6 安定版 PHPUnit 3.5.15 安定版 PHPUnit_MockObject 1.0.9 安定版 PHPUnit_Selenium 1.0.3 安定版 PHP_CodeCoverage 1.0.5 安定版 PHP_Timer 1.0.2 安定版 PHP_TokenStream 1.0.1 安定版 Text_Template 1.1.0 安定版3. pear.phpunit.de チャネルのインストールをすべてアンインストールします。 phpunit に関連するパッケージの順序は次のとおりです。
$ sudo pear uninstall PHPUnit $ sudo pear uninstall PHPUnit_MockObject ...4. PHPUnit パッケージを再インストールします
$ sudo pear install pear.phpunit.de / PHPUnit5.「phpunitunit/DBTest.php」を再度実行すると、問題は解決します。