AirSpecのテストケースをIntelliJ上で実行するプラグインを作った

仕事でAirSpecというScala用のテスティングフレームワークを使っているのですが、特定のテストケースをIntelliJ上で実行できないのが不便だなーと前々から思っていたのでプラグインを作ってみました。IntelliJScalaプラグインやZIOプラグインのテストサポートを参考にしました。

github.com

JetBrainsのプラグインリポジトリにはpublishしていませんが、GitHubのリリースページからアーカイブをダウンロードしてインストールできます。

github.com

インストールするとこんな感じでテストケースにマーカーが表示されるようになり…

クリックすると実行できます。

テスト結果のビューからテストケースにジャンプする機能は実装できていません。テストケースのソースコード上の位置を取得する必要があるのですが、良い方法が思いつかず…。

IntelliJ上でテストを実行するとテストランナー上でテストが実行されるのですが、IntelliJはテストランナーが標準出力に出力したTeamCityのサービスメッセージ形式のテキストから情報を取得しているようです。今回作成したプラグインでは若干アドホックな方法でAirSpec自体に含まれているテストランナーを流用しつつメッセージを出力する機能を追加しています。

www.jetbrains.com

いくつか細かい問題はあるものの、ひとまず自分で使うには十分なものができたので満足です。