Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

vim-rspec で Vim 上で RSpec を楽に実行する

$
0
0

はじめに

Vim で Rails でのアプリ開発をしているときに、RSpec でモデルのテストを回す、というようなケースがあると思います。

今までは tmux で別ペインにターミナルを立てて、該当の spec を直接コマンド実行していたのですが、なかなか面倒でした。

そんな中、vim-rspecという Vim プラグインが非常に便利だったので、紹介します。

vim-rspec とは

vim-rspecとは、Vim 上で動作する軽量の RSpec ランナーです。

よく使うキーマップを設定しておくことで、Vim 上で Rspec を実行することが出来ます。

使い方

インストール

まず、vim-rspec をインストールします。(以下は dein.vim でのインストール例です)

.vimrc
call dein#add('thoughtbot/vim-rspec')

キーマップ設定

次に、それぞれの関数を実行するキーマップを設定します。

.vimrc
" RSpec.vim mappings
map <Leader>t:call RunCurrentSpecFile()<CR>
map <Leader>s :call RunNearestSpec()<CR>
map <Leader>l:call RunLastSpec()<CR>
map <Leader>a:call RunAllSpecs()<CR>

それぞれの関数の概要は以下の通りです。

関数概要
RunCurrentSpecFile()現在開いている spec ファイル全体を実行
RunNearestSpec()現在開いている spec ファイルのカーソルに一番近いブロックの spec を実行
RunLastSpec()前回実行した spec を実行
RunAllSpecs()プロジェクトのすべての spec を実行

実行コマンド設定

次に、実際に実行するコマンドを設定します。

.vimrc
letg:rspec_command="!bin/rspec {spec}"

{spec}内に実際に実行する spec ファイル名が入ります。外部コマンドを実行するので、最初に!をつけます。

僕の場合は、spring-commands-rspecを使っていたので、bin/rspecとしています。

実行

上記設定後、編集中の spec ファイル上で例えば <Leader>t実行すると、その RSpec ファイルを実行し、Quickfix ウインドウ上で結果を表示してくれます。

vim-dispatch で更に便利に

tmux などの仮想ターミナルを使っている方は、vim-dispatchと組み合わせると更に便利かもしれません。

vim-dispatch は tmux、screen、iTerm、Windows などの仮想ターミナル上で、非同期にテストやコンパイルを実行できるプラグインです。

利用イメージは作者の動画を見るのがわかりやすいです。

使い方としては、まずvim-dispatch をインストールし、

.vimrc
call dein#add('thoughtbot/vim-rspec')

rspec を以下のように修正するだけで OK です。

.vimrc
letg:rspec_command="Dispatch bin/rspec {spec}"

この設定で RSpec を実行すると、tmux であれば別ペインを開き、非同期で spec を実行してくれます。実行中も Vim 上で操作ができるので便利です。

おわりに

こちらで 開発中何度も RSpec を実行するのが非常に楽になりました。よかったら試してみてください。
他の使い方は vim-rspec の READMEを読むと良いと思います。

参考


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>