レンタルサーバー選びの迷いを解決!全力サポートします

Google or AdMax Promotion (srv)

「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

実行すると以下のように、一覧が表示されます。

phpunit_framework_testcase-no-disp_st01

Composerのphpunitバージョン確認・PHPUnit_Framework_TestCase クラスが利用できません。を消したい

 

バージョンが「5.7.27」であることが分かりました。

対象バージョンのpharをダウンロード

対象バージョンのPHPUnitのPHARファイルを以下から探し、
ダウンロードして保存します。

phar.phpunit.de

phpunit_framework_testcase-no-disp_st02

phpunit.pharダウンロード・PHPUnit_Framework_TestCase クラスが利用できません。を消したい

 

ダウンロードウィンドウが表示されたら、
「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 クラスが利用できません。」が表示されています。

phpunit_framework_testcase-no-disp_st03

メッセージ表示状態・PHPUnit_Framework_TestCase クラスが利用できません。を消したい

 

プロジェクトのプロパティーを選択して設定します。

phpunit_framework_testcase-no-disp_st04

プロジェクトのプロパティー・PHPUnit_Framework_TestCase クラスが利用できません。を消したい

 

プロジェクトのプロパティーから「PHPインクルードパス」を選択し、
「ライブラリ」タブを選択します。

右のボタンから「外部PHARの追加」をクリックします。

phpunit_framework_testcase-no-disp_st05

PHPインクルード外部PHAR追加・PHPUnit_Framework_TestCase クラスが利用できません。を消したい

 

ファイル選択ダイアログが開きますので、
先ほど保存した「c:\phpunit-5.7.27\phpunit-5.7.27.phar」を選択します。

選択したら「開く」をクリックし確定します。

phpunit_framework_testcase-no-disp_st06

phpunit.pharの指定・PHPUnit_Framework_TestCase クラスが利用できません。を消したい

 

ダイアログが閉じ、ライブラリ一覧にファイルパスが設定されます。
「OK」をクリックして設定完了です。

phpunit_framework_testcase-no-disp_st07

パスの設定完了・PHPUnit_Framework_TestCase クラスが利用できません。を消したい

 

pharファイルの指定後の表示確認

MakeGoodのタブを選択した状態でまだメッセージが表示されています。

phpunit_framework_testcase-no-disp_st08

メッセージ表示状態変わらず・PHPUnit_Framework_TestCase クラスが利用できません。を消したい

 

プロジェクトからファイルを選択すると、
メッセージが消え「テストの実行を待っています...」と表示されます。

実行ボタンも有効になっていますので「実行(再生アイコン)」をクリックします。

phpunit_framework_testcase-no-disp_st09

ファイルをクリックで表示更新・PHPUnit_Framework_TestCase クラスが利用できません。を消したい

 

すぐに処理が実行され、テスト結果が更新されます。

phpunit_framework_testcase-no-disp_st10

正常にテスト実行可能・PHPUnit_Framework_TestCase クラスが利用できません。を消したい

 

以後、メッセージは状態に応じて変わりますが、
「PHPUnit_Framework_TestCase クラスが利用できません。」は消えます。

 

プロモーション

Google or AdMax Promotion (srvpos)

別のソース読み込んでどっちを使っているか分からなくならないか?

そうですね。
確かに気持ち悪いと思います。

では、実際に「phpunit-5.7.27.phar」ファイルを破壊しておいてはいかがでしょうか。

名前の解決だけ、Eclipseにさせておいて、
その他の実行部をすべて消してしまっても、

特にエラーが発生しなければ、そのファイルは使われていないという確証が取れます。

元の「phpunit-5.7.27.phar」は75,071行のファイルになっていますが、
それを以下のように編集してしまいます。
※念のため、元ファイルはバックアップをしておいてもいいと思います(使いませんが)

phpunit_framework_testcase-no-disp_st11

phpunit.pharの無効化・PHPUnit_Framework_TestCase クラスが利用できません。を消したい

 

これでいくらこのファイルを参照しても、
7万行が3行に書き換わり、実行部がありませんので、
まだ参照されていればエラーになります。

Eclipse画面を確認します。(Eclipseは念のためここで再起動しています)

変わらずエラーメッセージは消えたままになっています。
実行ボタンをクリックしてテストを実行します。

phpunit_framework_testcase-no-disp_st12

エラーメッセージ表示なし・PHPUnit_Framework_TestCase クラスが利用できません。を消したい

 

問題なく実行されライブラリに指定した
「phpunit-5.7.27.phar」が一切参照されていないことが確認できました。

phpunit_framework_testcase-no-disp_st13

問題なく実行、ファイル未使用確認完了・PHPUnit_Framework_TestCase クラスが利用できません。を消したい

 

これでComposerでインストールしたPHPUnitを利用して、
テスト実行をしつつ、気になるエラーメッセージを解消する事ができました。

(追記)
その後、上記方法で.pharファイルを変更した状態で、
プロジェクトのプロパティーを確認すると「(無効)」と表示されていました。
変更しなければ特に問題はないのですが、

一旦「インクルードパス」の項目に触ると、キャンセルするしかなくなってしまいます。
わざわざ「.phar」ファイルを無効化する必要もないと思いますので、
そのまま設定しておいても問題ない事と思います。

phpunit_framework_testcase-no-disp_st14

pharを壊すと無効扱いになる・PHPUnit_Framework_TestCase クラスが利用できません。を消したい

 

ご参考になれば幸いです。

 


AdMax Promotion

公開日:

コンテンツナビ
すべて展開 | すべて省略

AdMax Promotion

カテゴリ
すべて展開 | すべて省略

QRコードからもこのURLを開けます。