VSCode+ComposerでPHPUnit9.0を使う

VSCode+ComposerでPHPUnit9.0を使う

前提

項目 バージョン
Composer 1.10.1
PHPUnit 9.0.1

Composerはインストールされているものとします。まずはVSCodeを使わずに、ComposerからPHPUnitをインストールします。

phpunit.bat作成する

php vendor\phpunit\phpunit\phpunit --versionとするのが面倒なのでバッチを作成します。

これでphpunit --versionというように実行することができます。

src配下をオートロードする

プロジェクトは以下の構成とします。

テストコードでsrc配下のクラスをrequireしたくないので、src配下をオートロードしておきます。composer.jsonにautoload部分にpsr-4を追加します。

以下では、App\\は名前空間となります。src/とすることでsrc配下のファイルをプリロードすることができます。

composer.jsonを今回のようにautoloadのみ反映させる場合は、composer dumpコマンドでOKです。

composer dumpautoloadコマンドでもいいみたいです。更新対象は2つです。

https://qiita.com/atwata/items/5ba72d3d881a81227c2a

コマンドの初期設定をphpunit.xmlで行う

プロジェクト直下(composer.jsonがある場所)に、phpunit.xmlを作成します。

phpunitのコマンドオプションをxmlに書くことによってデフォルトで指定するオプションを省略することができます。

以下は、phpunit --colors testと同じ設定になります。

<?xml version="1.0" encoding="UTF-8" ?>
<phpunit colors="true">
<testsuites>
<testsuite name="Test suite">
<!– testフォルダ配下のテストファイルをテストする –>
<directory>test</directory>
</testsuite>
</testsuites>
</phpunit>

view raw
gistfile1.txt
hosted with ❤ by GitHub

このファイルを設定することで、phpunitでテストコードが実行されます。

テストメソッド

PHPUnitのテストコードの決まりについてです。

testXXXというようにプレフィックスにtestをつけることでテストメソッドと認識します。または

をつけるとテストメソッドと認識してくれます。@Testではないことに注意です。

各テストの最初に初期データ投入やインスタンス生成などをしたいと思います。

各テストの最後にはインスタンス破棄などの処理がしたいです。こういった場合に各テストの最初と最後に書くのではなく、デフォルトで用意されたメソッドで処理します。

PHPUnitでは以下4つのメソッドが用意されています。

 メソッド  実行タイミング
setUpBeforeClass テストクラスの最初
tearDownAfterClass テストクラスの最後
setUp 各テストの最初
tearDown 各テストの最後

setUpBeforeClass、tearDownAfterClassはstaticメソッドになります。また、戻り値の:voidを指定する必要があります。

protected function setUp():void
{
}
protected function tearDown():void
{
}
public static function setUpBeforeClass():void
{
}
public static function tearDownAfterClass():void
{
}

view raw
gistfile1.txt
hosted with ❤ by GitHub

簡単なテストコードです。

https://github.com/takahashi-h5/phpunit-sample01

VS CodeのPHPUnitプラグインを使う

VS CodeのPHPUnitプラグインを使用してPHPUnitのテストをしてみます。

まずはプラグインをインストールします。

VSCode+ComposerでPHPUnit9.0を使う

インストールしたら、PHPUnitプラグインの説明ページが開きますので内容を読みます。

VSCode+ComposerでPHPUnit9.0を使う

Setupですが、環境変数でphp.exeにパスが通っている、composerでPHPUnitをインストールしている場合は設定不要のようです。

Dockerはここでは一旦割愛します。

How to Useを見ます。

Ctrl + Shift + pで、コマンドパレットが開きますので、「PHPUnit Test」を選択します。

この時、メソッドにカーソルをあてます。

VSCode+ComposerでPHPUnit9.0を使う

メソッドにカーソルをあてた状態で「PHPUnit Test」を選択すると、そのケースのみ実行されます。

クラス名にカーソルをあてた状態で「PHPUnit Test」を選択すると、そのテストクラスが実行されます。

カーソルをあてない状態で「PHPUnit Test」を選択すると、テストコードを選択することができます。

VSCode+ComposerでPHPUnit9.0を使う

全てのテストファイルを閉じた状態で「PHPUnit Test」を選択すると、phpunit.xmlに従ってテストが実行されます。

スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA