はじめに
本記事はUzabase Advent Calendar 2023の1日目の記事です
こんにちは!!@Sicut_studyです!
私達はテスト駆動開発を徹底して行っています。
その中でE2Eを書くのにIntellijでGaugeを使って書いています。
その中で何度かモヤモヤしていたことがあり、「もっとわかりやすくなればな〜」というところから今回は
Intellijのプラグイン開発
に挑戦してみました!
E2Eを書いていての悩み
私達はGauge
というツールを使い、E2Eを書いています
例えば以下のテストがあったとします
# サンプルE2E
## ユーザー名を変更できる
* ユーザーAを作成する
* 管理画面にアクセスする ☆
* 名前変更ボタンを押す
* 名前に"ユーザーB"と入力する
* 保存ボタンを押す
* 名前が"ユーザーB"である
それぞれの行が1つのテストステップになっています
ここで、Gaugeにはコンセプトという便利な機能があります
# 管理画面にアクセスする ☆
* ログイン画面にアクセスする
* メールアドレスに"a@sample.com"を入力する
* パスワードに"pass"を入力する
* ログインボタンを押す
このように1つのステップをコンセプトとすることで、複数のステップから1つのステップが作れます(☆の箇所)
この機能はとても便利なのですが、
コンセプトの中のステップで起きたエラーがどこのステップで起きたエラーなのかわからない
という問題があります。
# サンプルE2E
## ユーザー名を変更できる
* ユーザーAを作成する
* 管理画面にアクセスする
* 名前変更ボタンを押す
* 名前に"ユーザーB"と入力する
* 保存ボタンを押す
* 名前が"ユーザーB"である
このテストを実行してログイン画面にアクセスするがエラーになりましたと言われたときに、内容が詳しくない人はすべてのステップの詳細を見に行く必要が有りました
今回はこんな悩みをプラグインを作って少しカイゼンしてみました🎉
開発したプラグインについて
今回はSpecファイルの各ステップで コンセプトのステップになっているものにマークをつけるプラグインを作りました
コンセプトの「コン」から「kitusne」と名付けてみました
使い方は簡単です。プラグインを入れて .specファイルを開いたエディター画面で「右クリック」→「Search Concept」を選択するとコンセプトファイルに定義がされているものは青いライトのマークが付きます
「Ctr+Alt+C」のショートカットも利用するので知りたいときにすぐにコンセプトになっているステップを把握することができます
プラグイン開発について
プラグインは以下の記事を参考に作成しました
まずはプラグインで簡単なものを作成して使えることが確認できてから、ChatGPTを駆使してプラグイン特有のライブラリを利用しながら開発しています
このプラグイン作成のテンプレートが優秀すぎるので速攻開発を始められました
しかもGithub Actionsでjarファイルを作ってくれるのでダウンロードしてMarktplaceにアップロードすれば公開も簡単にできます
プラグイン特有の話はChatGPTに任せて、書いていたのは簡単なKotlinのコードなのでそこまで難しいと思う箇所は全然ありませんでした!
オレオレのプラグインをどんどん作って効率化をしていくのは簡単にできます
ちなみに最後に表示しているアイコンはこちらから利用しています
今後の開発
いまはコンセプトになっているステップだけを表示しているので、
- 具体的にエラーが起きているコンセプトだけを表示
- エラーのステップに飛べる
などGaugeを利用する上で便利になるような機能を追加していきたいです
おわりに
今回は初めてIntellijのプラグインを作ってのでその話を記事にしました
VSCodeの拡張に比べると個人的にはとても作りやすいなと感じました!
また、ChatGPTとの相性もとてもよかったので、やりたいことを伝えてプラグインをぜひ作ってみてください!
ここまで読んでいただけた方はいいねとストックお待ちしております!
参考