blob: 7f7a13e82c63a888b80b4c86c04ba9e4af8369d9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#!/bin/bash
#
# From Destroy All Software screencast #10, at:
# http://destroyallsoftware.com/screencasts/catalog/fast-tests-with-and-without-rails
#
# Put this in the script/ directory of your Rails app, then run it with a spec
# filename. If the spec uses spec_helper, it'll be run inside Bundler.
# Otherwise, it'll be run directly with whatever `rspec` executable is on the
# path.
set -e
need_rails=1
if [ $# -gt 0 ]; then # we have args
filename=$1
# Remove trailing line numbers from filename, e.g. spec/my_spec.rb:33
grep_filename=`echo $1 | sed 's/:.*$//g'`
(set +e; grep -r '\bspec_helper\b' $grep_filename) > /dev/null
if [ $? -eq 1 ]; then # no match; we have a stand-alone spec
need_rails=''
fi
else # we have no args
filename='spec'
fi
command='rspec'
if [ $need_rails ]; then
command="ruby -S bundle exec $command"
fi
RAILS_ENV=test $command $filename
|