A simple Vim plugin to run specs: if the current file ends in _spec.rb
,
_test.rb
or .feature
, run it; if not, guess where the associated spec file
is and run that. It also includes a function for toggling between a test file
and the associated implementation file.
The plugin will attempt to automatically discover whether you are using RSpec, minitest/spec or Cucumber and use Bundler (and binstubs) if appropriate.
I recommend using Vundle and then you can
install the plugin by simply adding the following line to your .vimrc
:
Bundle 'mudge/runspec.vim'
By default, the plugin will bind to <Leader>t
if it is not already mapped but
you can manually map to <Plug>RunSpecRun
like so:
map <Leader>r <Plug>RunSpecRun
You can override the automatic detection of the appropriate spec runner (e.g.
rspec
or ruby
) by having an executable script/test
that accepts a spec
file as an argument. Note that features will always run with cucumber
.
To toggle between having a test file open and the corresponding
implementation file, you can map a keybinding to
<Plug>RunSpecToggle
, like so:
map <Leader>s <Plug>RunSpecToggle
In order to detect custom test runners accurately, the plugin requires that you are
using Bundler and have a valid Gemfile.lock
(so that it can work with
Gemfile
s that only specify gemspec
).
If you are not using any gems (e.g. you are using only Ruby's built-in testing
libraries) then you should not be affected as the plugin will default to using
ruby
as your test runner.
Thanks to William Roe for contributing the toggle functionality.
Copyright © 2015-2016 Paul Mucur
Distributed under the MIT License.