「PHPUnit_Framework_TestCase クラスが利用できません。」をどうしても消したいならphar指定する
「PHPUnit_Framework_TestCase クラスが利用できません。修正…」と、
MakeGoodのウィンドウに表示されていても環境構築が済んでいれば、
テストを実行する事はできますが、
その表示自体がどうしても気になってしまうというという場合は、
ComposerでインストールされているPHPUnitと、
同じバージョンのpharを個別指定しておくとメッセージは消すことができます。
概要
「PHPUnit_Framework_TestCase クラスが利用できません。」をどうしても消したい
「PHPUnit_Framework_TestCase クラスが利用できません。修正…」のメッセージは、
目に付く場所に表示されている為、最初にそのメッセージを消すことに意識が行きがちです。
ですが、実際のところ設定が済んでいれば、
メッセージが表示されていてもMakeGoodでテスト実行は可能です。
ただやはり気持ちがいいものでもないので、
便宜上、PHPUnitのPHARファイル指定を行う事で、メッセージを消すこともできます。
ただ、指定したPHARファイル自体は使用されないはずです。
またPHPUnitは現実的にはComposerを利用してインストールされることをお勧めします。
というか、私はその方法でしか動く環境の構築はできませんでした。
私の中では「PHPUnitはComposerで入れるもの」と言う認識になりました。
ComposerでインストールされたPHPUnitのバージョン確認
まず、ComposerでインストールしたPHPUnitのバージョンを知る必要があります。
尚、まだインストールが済んでいないのであれば、
このメッセージは最後に消せば済む話ですので、
メッセージは無視して、実行環境を構築する事に専念されたほうがいいでしょう。
ComposerでインストールしたPHPUnitのバージョンを調べるには、
コマンドプロンプトから以下を実行します。
※ここではComposerが「c:\composer」にインストールされている事とします。
cd c:\composer
composer show -i
(参考)Composerでインストールしているパッケージのバージョンを確認する · GitHub
実行すると以下のように、一覧が表示されます。
バージョンが「5.7.27」であることが分かりました。
対象バージョンのpharをダウンロード
対象バージョンのPHPUnitのPHARファイルを以下から探し、
ダウンロードして保存します。
ダウンロードウィンドウが表示されたら、
「c:\phpunit-5.7.27」とでもフォルダを作成して「phpunit-5.7.27.phar」を保存します。
これでpharファイルまでのフルパスが以下のようになりました。
c:\phpunit-5.7.27\phpunit-5.7.27.phar
次にEclipseへpharファイルの指定
次にEclipseに対して、pharファイルを指定します。
以下設定を既に完了しているEclipseです。
MakeGoodのタブでは、
「PHPUnit_Framework_TestCase クラスが利用できません。」が表示されています。
プロジェクトのプロパティーを選択して設定します。
プロジェクトのプロパティーから「PHPインクルードパス」を選択し、
「ライブラリ」タブを選択します。
右のボタンから「外部PHARの追加」をクリックします。
ファイル選択ダイアログが開きますので、
先ほど保存した「c:\phpunit-5.7.27\phpunit-5.7.27.phar
」を選択します。
選択したら「開く」をクリックし確定します。
ダイアログが閉じ、ライブラリ一覧にファイルパスが設定されます。
「OK」をクリックして設定完了です。
pharファイルの指定後の表示確認
MakeGoodのタブを選択した状態でまだメッセージが表示されています。
プロジェクトからファイルを選択すると、
メッセージが消え「テストの実行を待っています...」と表示されます。
実行ボタンも有効になっていますので「実行(再生アイコン)」をクリックします。
すぐに処理が実行され、テスト結果が更新されます。
以後、メッセージは状態に応じて変わりますが、
「PHPUnit_Framework_TestCase クラスが利用できません。」は消えます。
別のソース読み込んでどっちを使っているか分からなくならないか?
そうですね。
確かに気持ち悪いと思います。
では、実際に「phpunit-5.7.27.phar」ファイルを破壊しておいてはいかがでしょうか。
名前の解決だけ、Eclipseにさせておいて、
その他の実行部をすべて消してしまっても、
特にエラーが発生しなければ、そのファイルは使われていないという確証が取れます。
元の「phpunit-5.7.27.phar」は75,071行のファイルになっていますが、
それを以下のように編集してしまいます。
※念のため、元ファイルはバックアップをしておいてもいいと思います(使いませんが)
1 2 3 4 |
<?php namespace PHPUnit\Framework; use PHPUnit_Framework_TestCase; |
これでいくらこのファイルを参照しても、
7万行が3行に書き換わり、実行部がありませんので、
まだ参照されていればエラーになります。
Eclipse画面を確認します。(Eclipseは念のためここで再起動しています)
変わらずエラーメッセージは消えたままになっています。
実行ボタンをクリックしてテストを実行します。
問題なく実行されライブラリに指定した
「phpunit-5.7.27.phar」が一切参照されていないことが確認できました。
これでComposerでインストールしたPHPUnitを利用して、
テスト実行をしつつ、気になるエラーメッセージを解消する事ができました。
(追記)
その後、上記方法で.pharファイルを変更した状態で、
プロジェクトのプロパティーを確認すると「(無効)」と表示されていました。
変更しなければ特に問題はないのですが、
一旦「インクルードパス」の項目に触ると、キャンセルするしかなくなってしまいます。
わざわざ「.phar」ファイルを無効化する必要もないと思いますので、
そのまま設定しておいても問題ない事と思います。
ご参考になれば幸いです。
当サイト内のコンテンツおよび画像を含むすべてにおいて、管理人アルゴリズンが著作権を保持しております。
当サイトでご紹介しております写真等につきましては著作権の放棄はしませんが、
ライセンスフリーでご利用いただいて構いません。
コンテンツを有益であると感じていただけましたら非常に光栄です。
ありがとうございます。
サイト内コンテンツを引用される際には、出典元として当サイト(個別記事)へのリンクをお願いいたします。
申し訳ございませんが、無断転載、複製をお断りさせて頂いております。
公開日: