$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

gotest.elを使って、Emacs上でgolangのテストを実行する

【Scala】Emacsで現在編集している部分のテストを実行する - $shibayu36->blog; と同じようなことをgolangでもやりたいと思って調べたら、gotest.el というのを使えば同様のことを簡単にできることが分かったので使ってみた。

今回できること

  • 現在編集中のファイルのテストを実行する
  • 現在編集中のテストメソッドのみ実行する

以下のような感じ。

設定

まずはインストール。

M-x package-install RET gotest

あとはrequireして、自分の好きなキーバインドを当てるだけ。

(require 'gotest)
(setq go-test-verbose t) ;; verboseフラグ付きでgotestする
(define-key go-mode-map (kbd "C-c C-t") 'go-test-current-file)
(define-key go-mode-map (kbd "C-c t") 'go-test-current-test)

これで、go-modeでC-c C-tで現在編集中のファイルのテストを実行でき、C-c tで現在編集中のテストメソッドのみ実行出来るようになった。

あとpopwinで表示させるのが好みなので、追加で以下のような設定も行った。

(push '("\*Go Test\*" :regexp t :height 0.5 :stick t) popwin:special-display-config)

まとめ

今回はEmacsgolangのテストを実行する方法について書いてみた。これでgolangでも、テスト編集 -> テスト実行 -> テスト編集のループをEmacs上だけで回せるようになった。