RSpec plugin for Sublime Text 3
Run, navigate and create specs from Sublime editor.
I have used RubyTest plugin for some time and was not happy with it.
So I decided to create a simple to understand and develop plugin targeting only rspec
.
With Package Control:
- Run “Package Control: Install Package” command, find and install
Test Rspec
plugin. - Restart SublimeText editor
Manually:
- Clone this git repository into your packages folder (in SublimeText, Preferences -> Browse Packages to open this folder)
- Restart SublimeText editor
Executed using sublime build tools exec
command.
When preconditions are not satisfied outputs to panel.
Read this if you want to know how Sublime package settings work.
Find settings in "Preferences -> Package Settings -> TestRSpec"
Find bindings in "Preferences -> Package Settings -> TestRSpec"
Executes Sublime command to run rspec. Displays output in panel.
Launch rspec for:
- current line
- current file
- run previous spec
Command generation
# output example
# /home/user/.rbenv/bin/rbenv exec bundle exec spring rspec /home/user/dev/project/spec/models/user_spec.rb:2
#
# ProjectRoot
# project root by ../spec
#
# SpecTarget
# file + line
#
# Rspec
# Environment variables
# take from configuration
#
# (BinRspec || RubyRspec) + SpecTarget
#
# BinRspec
# find /bin/rspec from project root
#
# on ./bin/rspec not found
# RubyRspec : (Rbenv || Rvm || SystemRuby) + Bundle + Spring
# Rbenv on configuration
# find $HOME/.rbenv/bin/rbenv exec
#
# Bundle on configuration
# check if Gemfile is present
# bundle exec
#
# Spring on configuration
# check if Gemfile contains spring-commands-rspec
# spring
Returns all matches by file name.
Prioritizes matches by path as they are more likely the right ones such that in most cases you pick the first match.
Creates spec file when launched in source file.
Uses code snippet defined in settings.
You add binding.pry
to the code, then run the rspec and process stucks on pry debugger.
You can disable the debugger modifying the rspec command environment:
"rspec_add_to_path": "DISABLE_PRY=true",
Thanks @werdlerk for the tip!
Example error:
/usr/bin/env: ruby: No such file or directory
Update package settings with path to ruby, for rbenv
that's:
"rspec_add_to_path": "$HOME/.rbenv/shims",
Make sure you have both spring
and spring-commands-rspec
in your Gemfile.
If you use binstubs, you also need to run
bundle exec spring binstub rspec
Inspired by https://github.com/maltize/sublime-text-2-ruby-tests
Parts that are taken:
- test console theme
- key bindings
- idea of how to switch between code and test
- idea of how to run spec
Help is always welcome. Create an issue if you need help.
- Create plugin
- Submit package
- Forum
- Documentation
- Api reference
- Auto reloading
- Extract package - to extract default package and understand plugin development basics
- Package settings
- Unofficial documentation
Copyright © 2016 @astrauka
Licensed under the MIT license.