仕事でAirSpecというScala用のテスティングフレームワークを使っているのですが、特定のテストケースをIntelliJ上で実行できないのが不便だなーと前々から思っていたのでプラグインを作ってみました。IntelliJのScalaプラグインやZIOプラグインのテストサポートを参考にしました。
JetBrainsのプラグインリポジトリにはpublishしていませんが、GitHubのリリースページからアーカイブをダウンロードしてインストールできます。
インストールするとこんな感じでテストケースにマーカーが表示されるようになり…
クリックすると実行できます。
テスト結果のビューからテストケースにジャンプする機能は実装できていません。テストケースのソースコード上の位置を取得する必要があるのですが、良い方法が思いつかず…。
IntelliJ上でテストを実行するとテストランナー上でテストが実行されるのですが、IntelliJはテストランナーが標準出力に出力したTeamCityのサービスメッセージ形式のテキストから情報を取得しているようです。今回作成したプラグインでは若干アドホックな方法でAirSpec自体に含まれているテストランナーを流用しつつメッセージを出力する機能を追加しています。
いくつか細かい問題はあるものの、ひとまず自分で使うには十分なものができたので満足です。