🚀

Launchable Advent Calendar 5日目 - record tests command

2022/12/05に公開

Launchableの各機能の利用方法を紹介する Launchable Advent Calendar 5日目です。

はじめに

5日目はLaunchableへテスト結果を送る launchable record tests コマンドについて紹介します。

Konboi/launchable-java-exampleリポジトリを使って説明していきます。

launchable record tests

launchable record tests はテスト結果をLaunchableへ送るコマンドになります。
テストフレームワークによって出力される形式が異なるためlaunchableコマンドでは各テストフレームワーク用のプロファイルを提供しています。 Maven, Gradlepytest などさまざまなテストフレームワークに対応しています。
対応しているテストフレームワークについてはこちらをご覧ください。

Konboi/launchable-java-exampleリポジトリでは Maven を使用しているのでMavenプロファイルを使用します。 maven-surefire-plugin をデフォルトで使用しているため target/surefire-reports ディレクトリ以下にテスト結果のファイルが生成されます。

コマンドはこのように実行します。

$ mvn test # テスト実行
$ launchable record tests maven target/surefire-reports/TEST-example.*.xml
Launchable recorded tests for build 3617332394 (test session 1607535) to workspace konboi/advent-calendar-2022 from 4 files:

|   Files found |   Tests found |   Tests passed |   Tests failed |   Total duration (min) |
|---------------|---------------|----------------|----------------|------------------------|
|             4 |             4 |              4 |              0 |                 0.0001 |

Visit https://app.launchableinc.com/organizations/konboi/workspaces/advent-calendar-2022/test-sessions/1607535 to view uploaded test results (or run `launchable inspect tests --test-session-id 1607535`)

実行に成功すると送られたテスト結果の概要が表示されます。

GitHub Actionsでの例

Day 4のGitHub Actionsの設定ファイルに launchable record tests コマンドを追加してみます。

追加した項目は2点です。

1点目はテストの実行。mvn test でテストを実行しています。JUnit形式のテスト結果を target/surefire-reports 以下に出力しています。

2点目は先ほど紹介した launchable record tests コマンドの追加です。注意する点としてテストが失敗した場合でも launchable record tests コマンドを実行する必要があります。
CIによっては終了ステータスが0以外の場合、そこで処理を止めてしまう場合があります。その場合、テスト成功の結果のみLaunchableへ送られることになってしまいます。

ですので、GitHub Actionsの場合は if: always()launchable record tests を実行するステップに設定して下さい。
その他CIサービスを利用している方はこちらを参照ください。

ci.yaml
         run: launchable verify
       - name: record build
         run: launchable record build --name ${GITHUB_RUN_ID}
+      - name: Run tests
+        run: mvn test
+      - name: launchable record tests
+        run: launchable record tests maven target/surefire-reports/TEST-example.*.xml
+        if: always()

実行に成功するとWeb Appでも結果を確認できます。

さいごに

本日は launchable record tests コマンドについて紹介しました。
6日目はPTSのコマンドである launchable subset コマンドについて紹介します。

Discussion