Spectator
Test driven development red-green cycle for simple people!
The gist
Spectator is a simple watcher for your specs:
- it will execute a spec each time a file (spec or implementation) is modified or created (really catches new files!)
- it does not starts your whole suite at start, nor when a spec passes or fails (as autospec tends to do)
- if you ask it runs the whole spec suite
Started as a custom Watchr script Spectator has grown up to a tiny gem!
Compatibility
Works with RSpec-1 and RSpec-2 (looks for a .rspec
file in the project root).
Usage
Launch spectator
in a terminal and go back to code!
The normal behavior is similar to autotest --fast-start --no-full-after-failed
but gives the user a bit more control over execution. By hitting CTRL+C (or CMD+. on OSX)
you get the following prompt:
^C (Interrupted with CTRL+C)
--- What to do now? (q=quit, a=all-specs):
Type q
and ENTER
(or CTRL+C
again) to quit.
Type a
and ENTER
(or CTRL+C
again) to execute the whole suite of specs.
Advanced (upcoming!)
If you want to override some path matching:
BASE_DIR_GLOB
:
The glob that expanded will list the directories that contains the code. Default:
SPEC_DIR_GLOB
:
The glob that expanded will list the directories that contains the specs. Default:
RSPEC_COMMAND
:
The full command that will run your specs. Default: bundle exec rspec
(or bundle exec spec
for RSpec 1.x)
Examples
Inline ENV variables
# this will match lib/opal/parser.rb to spec/cli/parser.rb
BASE_DIR_GLOB='lib/opal' SPEC_DIR_GLOB='spec/cli' spectator
Exported ENV variables
export BASE_DIR_GLOB="{opal/corelib,stdlib}"
export SPEC_DIR_GLOB="spec/{corelib,stdlib}"
export RSPEC_COMMAND="bundle exec mspec run -t ./bin/opal -I$(dirname $(gem which mspec)) -Ilib -rmspec/opal/mspec_fixes.rb"
spectator
With a .spectator
config file
# contents of ".spectator" file
BASE_DIR_GLOB: 'lib/opal'
SPEC_DIR_GLOB: 'spec/cli'
spectator
Specifying a custom config file
# contents of ".my-spectator-config" file
BASE_DIR_GLOB: 'lib/opal'
SPEC_DIR_GLOB: 'spec/cli'
spectator .my-spectator-config
License
Copyright © 2011-2012 Elia Schito, released under the MIT license