Laravel

Lumen(Laravel)のテスト結果を出力する

Lumen開発でAPIのテスト結果をターミナルで確認することはありますが、実際に結果を提出したりするケースがあり、今回それまでの手順をまとめます。
Laravelでも同様に実行出来たり、PHPのプロジェクトでも可能と思います。
大きな流れとしては「xml」で出力した後に「html」に変換するようになります。

環境

  • Mac Intel Ventura 13.1
  • Docker 20.10.23

テストケースを「xml」として出力する

phpunit」実行時にオプションに「–log-junit」をつけます。

$ vendor/bin/phpunit --log-junit {出力するXMLファイル名}

結果は一旦「xml」として出力します。
ただこの場合「xml」では閲覧するのが難しいため、XMLを「html」形式に変換します。

「xml」を「html」に変換する

まずはHTMLのテンプレートファイルをダウンロードします。
以下のURLから「phpunit.xslt」をダウンロード、もしくはコピペでファイルを作成します。

phpunit.xslt

Macの場合に「xsltproc」コマンドがあるはずですので、以下のコマンドを実行します。

$ xsltproc phpunit.xslt {出力したXMLファイル名} > {出力するHTMLファイル名}

気を付けることは、「phpunit」をDocker内でやって、「xsltproc」をMacでやることになるため、ターミナルを2つにするか、Docker内にも「xsltproc」を使用出来るようにした方がいいかもしれません。