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>RunSpecRunYou 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>RunSpecToggleIn 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
Gemfiles 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.