-
Notifications
You must be signed in to change notification settings - Fork 53
/
Run focused unit test.plist
63 lines (55 loc) · 1.88 KB
/
Run focused unit test.plist
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>beforeRunningCommand</key>
<string>saveActiveFile</string>
<key>captureFormatString</key>
<string>$0</string>
<key>capturePattern</key>
<string>(/[^:]+):(\d+)</string>
<key>command</key>
<string># Assumes the current file is a unittest file
# Runs with the currently-focused method as the test name
args=$(${TM_RUBY:=ruby} <<"EOF"
n = ENV['TM_LINE_NUMBER'].to_i
spec, context, name = nil, nil, nil
File.open(ENV['TM_FILEPATH']) do |f|
# test/unit
lines = f.read.split("\n")[0...n].reverse
name = lines.find { |line| line =~ /^\s*def test[_a-z0-9]*[\?!]?/i }.to_s.sub(/^\s*def (.*?)\s*$/) { $1 }
# test/spec.
spec = $3 || $4 if lines.find { |line| line =~ /^\s*(specify|it)\s+('(.*)'|"(.*)")+\s*(\{|do)/ }
context = $3 || $4 if lines.find { |line| line =~ /^\s*(context|describe)\s+('(.*)'|"(.*)")+\s*(\{|do)/ }
end
puts [name, spec, context].inspect
if !name.empty?
print "--name=#{name}"
elsif !spec.empty? && !context.empty?
print "--name=\"/test_spec \\{.*#{context}\\} \\d{3} \\[#{spec}\\]/\""
end
EOF)
if [[ -z "$args" ]]; then
echo -e "This doesn't appear to be a TestCase class."
exit_show_tool_tip
fi
export RUBYLIB="$TM_BUNDLE_SUPPORT/RubyMate${RUBYLIB:+:$RUBYLIB}"
"${TM_RUBY:-ruby}" -- "$TM_BUNDLE_SUPPORT/RubyMate/run_script.rb" $args</string>
<key>fileCaptureRegister</key>
<string>1</string>
<key>input</key>
<string>document</string>
<key>keyEquivalent</key>
<string>@R</string>
<key>lineCaptureRegister</key>
<string>2</string>
<key>name</key>
<string>Run Focused Unit Test</string>
<key>output</key>
<string>showAsHTML</string>
<key>scope</key>
<string>source.ruby</string>
<key>uuid</key>
<string>5289EE40-86B8-11D9-A8D4-000A95E13C98</string>
</dict>
</plist>