Launchable Advent Calendar 5日目 - record tests command
Launchableの各機能の利用方法を紹介する Launchable Advent Calendar 5日目です。
はじめに
5日目はLaunchableへテスト結果を送る launchable record tests コマンドについて紹介します。
Konboi/launchable-java-exampleリポジトリを使って説明していきます。
launchable record tests
launchable record tests はテスト結果をLaunchableへ送るコマンドになります。
テストフレームワークによって出力される形式が異なるためlaunchableコマンドでは各テストフレームワーク用のプロファイルを提供しています。 Maven, Gradle や pytest などさまざまなテストフレームワークに対応しています。
対応しているテストフレームワークについてはこちらをご覧ください。
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サービスを利用している方はこちらを参照ください。
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