ContextBuild is a plugin for Sublime Text 2 that replaces build functionality for working with dynamic languages. It has the ability to run any number of files under a test runner configured on a per-project basis, and also the ability to run any single test or multiple tests within an individual file.
ContextBuild also supports re-running the last build selection, as well as only failed tests from the last selection.
The result is a build system that cuts time off from fixing broken tests and also from creating new tests.
ContextBuild currently supports Python (nosetests) and NodeJS (mocha).
Clone into (or ln -s to) your ~/.config/sublime-text-2/Packages folder. Enjoy!
Note: Sublime Text clobbers PYTHONPATH. So, you MUST set the "context_build_python_path" setting in either your .sublime-project file or your user settings.
Shortcuts (Ctrl / Super and Option / Alt are interchangeable):
- Alt+B - Build current file
- Alt+Shift+B - Build selected test(s) (or the one before the cursor)
- Ctrl+B - Re-run last build
- Ctrl+Shift+B - Re-run failures from last build
You may also right click files in the tree-view and choose "Build Selected" to trigger a build.
The default ContextBuild action is to run nosetests with -v.
If you want to use the mocha test runner (NodeJS), you'll need to modify your .sublime-project file to include "context_build_runner" in its "settings" section:
"settings": {
"context_build_runner": "mocha"
}
If you want to pass additional options to mocha, use the ContextBuild user configuration (may be found under Preferences -> Package Settings -> ContextBuild -> Settings - User). For instance:
{
"mocha_compilers": [ "sjs:/home/walt/dev/seriousjs/src/seriousjs" ]
}
- Save on build won't try to save files that do not exist on your hard drive (and would result in a prompt)
-
When you close and re-open sublime text, any existing build views will be replaced with new builds, rather than creating a new view.
-
Output from child process (e.g. nosetests) displays as it happens rather than based on lines.
-
Repeated builds are sensitive to config changes