$shibayu36->blog;スマートフォン用の表示で見る$shibayu36->blog;株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。2017-08-28【Scala】Emacsで現在編集している部分のテストを実行するtechScalaのテストを実行する時、sbtを使うと、特定のテストクラスだけの実行や、特定のテストケースだけの実行ができる。紹介されているとおり。コードはテキストエディタで書いているので、このコマンドを使うとしても編集を終える今のファイルのテストクラス名とdescribeの文字列をコピーするターミナルを開いて、sbtでtestOnlyを使ってコピーした文字列を貼り付けて実行のように、結構面倒という問題がある。編集のループを回しやすくしてみた。今回はそのことについてご紹介。今回のユーティリティで出来ること以下のように、現在ファイルのテストクラスだけEmacs上で実行したりさらに、現在のカーソルが存在するdescribeのテストだけ実行したりできる。バッファから、パッケージ名・テストクラス名・describeを抜き出し、それをsbt-modeに渡すことで実現できる。いうものを使うと、Emacs上でsbtを動かし、それに対してコマンドを送ることができる。これをインストールする。sbt-mode後は以下のような実装を行うと、sbt/test-only-current-specで現在のバッファのテストクラスを実行でき、sbt/test-only-current-describeで現在カーソルがいるdescribeのテストだけを実行できる。matched-describe-name))後は好きなキーバインドを割り当てる。表示するのが好きなので、以下のようにsbt-modeのバッファはポップアップするように設定した。popwin:special-display-config)技術的Tips今回の実装は、「現在バッファの特定の文字列を抜き出す」ということが出来れば簡単に実装できる。1))))まず、save-excursionでバッファの状態を保存しておく。これがないと文字列を探索した時にカーソルの位置が変わってしまう。次にre-search-backwardを使って、現在カーソルより上の文字列を正規表現で探索する。抜き出したい部分を括弧を使って取り出せるようにしておく。後はmatch-stringを使って、括弧で囲っていた部分を取り出す。1番目の括弧の中身を取り出したいので、1を指定している。まとめ今回はEmacsで現在編集している部分のScalaのテストを実行する方法について書いてみた。これによってテストクラス名とかをコピペする手間が省けるようになって便利。FoundページやISEページをカスタマイズする月別アーカイブはてなブログをはじめよう!shiba_yu36さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。