LoginSignup
10
4

【個人開発】Intellijプラグイン「kitsune」を作ってリリースしてみた

Last updated at Posted at 2023-11-30

#270C00.png

はじめに

本記事はUzabase Advent Calendar 2023の1日目の記事です

こんにちは!!@Sicut_studyです!

私達はテスト駆動開発を徹底して行っています。
その中でE2Eを書くのにIntellijGaugeを使って書いています。

その中で何度かモヤモヤしていたことがあり、「もっとわかりやすくなればな〜」というところから今回は

Intellijのプラグイン開発

に挑戦してみました!

E2Eを書いていての悩み

私達はGaugeというツールを使い、E2Eを書いています
例えば以下のテストがあったとします

test.spec
# サンプルE2E

## ユーザー名を変更できる
* ユーザーAを作成する
* 管理画面にアクセスする 
* 名前変更ボタンを押す
* 名前に"ユーザーB"と入力する
* 保存ボタンを押す
* 名前が"ユーザーB"である

それぞれの行が1つのテストステップになっています
ここで、Gaugeにはコンセプトという便利な機能があります

test.cpt
# 管理画面にアクセスする ☆
* ログイン画面にアクセスする
* メールアドレスに"a@sample.com"を入力する
* パスワードに"pass"を入力する
* ログインボタンを押す

このように1つのステップをコンセプトとすることで、複数のステップから1つのステップが作れます(☆の箇所)

この機能はとても便利なのですが、

コンセプトの中のステップで起きたエラーがどこのステップで起きたエラーなのかわからない

という問題があります。

test.spec
# サンプルE2E

## ユーザー名を変更できる
* ユーザーAを作成する
* 管理画面にアクセスする
* 名前変更ボタンを押す
* 名前に"ユーザーB"と入力する
* 保存ボタンを押す
* 名前が"ユーザーB"である

このテストを実行してログイン画面にアクセスするがエラーになりましたと言われたときに、内容が詳しくない人はすべてのステップの詳細を見に行く必要が有りました

今回はこんな悩みをプラグインを作って少しカイゼンしてみました🎉

開発したプラグインについて

今回はSpecファイルの各ステップコンセプトのステップになっているものにマークをつけるプラグインを作りました

#270C00.png

コンセプトの「コン」から「kitusne」と名付けてみました

使い方は簡単です。プラグインを入れて .specファイルを開いたエディター画面で「右クリック」→「Search Concept」を選択するとコンセプトファイルに定義がされているものは青いライトのマークが付きます

「Ctr+Alt+C」のショートカットも利用するので知りたいときにすぐにコンセプトになっているステップを把握することができます

Peek 2023-11-16 12-25.gif

プラグイン開発について

プラグインは以下の記事を参考に作成しました

まずはプラグインで簡単なものを作成して使えることが確認できてから、ChatGPTを駆使してプラグイン特有のライブラリを利用しながら開発しています

このプラグイン作成のテンプレートが優秀すぎるので速攻開発を始められました

しかもGithub Actionsでjarファイルを作ってくれるのでダウンロードしてMarktplaceにアップロードすれば公開も簡単にできます

プラグイン特有の話はChatGPTに任せて、書いていたのは簡単なKotlinのコードなのでそこまで難しいと思う箇所は全然ありませんでした!
オレオレのプラグインをどんどん作って効率化をしていくのは簡単にできます

ちなみに最後に表示しているアイコンはこちらから利用しています

今後の開発

いまはコンセプトになっているステップだけを表示しているので、

  • 具体的にエラーが起きているコンセプトだけを表示
  • エラーのステップに飛べる

などGaugeを利用する上で便利になるような機能を追加していきたいです

おわりに

今回は初めてIntellijのプラグインを作ってのでその話を記事にしました
VSCodeの拡張に比べると個人的にはとても作りやすいなと感じました!
また、ChatGPTとの相性もとてもよかったので、やりたいことを伝えてプラグインをぜひ作ってみてください!

ここまで読んでいただけた方はいいねストックお待ちしております!

参考

10
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
4