Launchable Advent Calendar 17日目 - --same-binオプション
Launchableの各機能の利用方法を紹介する Launchable Advent Calendar 17日目です。
はじめに
今日は Day 16で紹介した launchable split-subset
コマンドの --same-bin
オプションについて紹介します。(docs)
テストの中には事情があって並列で実行できないものがあるかと思います。Split Subset (launchable split-subset
コマンド)はデフォルトで実行時間が均等になるようテストを割り振るのでそのようなテストがあると利用が難しい場合があります。
紹介する --same-bin
オプションはそのようなテストを同じグループにまとめてくれるオプションになります。
--same-binオプション
任意のファイルにまとめたいテストを列挙します。その際のテストのフォーマットはPredictive Test Selection(PTS)で出力されるフォーマットになります。
ここでは same-bin.txt
ファイルを作成し example.DivTest
と example.MulTest
のテストを同じグループにまとめてみます。
example.DivTest
example.MulTest
Day 16で行ったようにSplit Subsetを行い launchable split-subset
コマンドの --same-bin
に先ほど用意した same-bin.txt
を指定します。
このように example.DivTest
と example.MulTest
が同一グループにまとめられるのが確認できます。
$ launchable subset --target 100% --split maven src/test/java > launchable-subset-id.txt
Launchable created subset 398628 for build same-bin (test session 1622424) in workspace konboi/advent-calendar-2022
| | Candidates | Estimated duration (%) | Estimated duration (min) |
|-----------|--------------|--------------------------|----------------------------|
| Subset | 4 | 100 | 0.0933333 |
| Remainder | 0 | 0 | 0 |
| | | | |
| Total | 4 | 100 | 0.0933333 |
Run `launchable inspect subset --subset-id 398628` to view full subset details
$ launchable split-subset --subset-id $(cat launchable-subset-id.txt) --same-bin same-bin.txt --bin 1/2 maven
example.DivTest
example.MulTest
$ launchable split-subset --subset-id $(cat launchable-subset-id.txt) --same-bin same-bin.txt --bin 2/2 maven
example.SubTest
example.AddTest
$ launchable split-subset --subset-id $(cat launchable-subset-id.txt) --same-bin same-bin.txt --bin 1/3 maven
example.DivTest
example.MulTest
$ launchable split-subset --subset-id $(cat launchable-subset-id.txt) --same-bin same-bin.txt --bin 2/3 maven
example.SubTest
$ launchable split-subset --subset-id $(cat launchable-subset-id.txt) --same-bin same-bin.txt --bin 3/3 maven
example.AddTest
--same-bin
複数指定できるので同じグループで返したいテストが複数セットある場合でも対応できます。
さいごに
本日は特定のテストを同一グループにまとめるための --same-bin
オプションを紹介しました。
明日は launchable stat
コマンドについて紹介します。
Discussion