testowl 0.0.7 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/testowl/growl.rb +5 -2
- data/lib/testowl/monitor.rb +3 -1
- data/lib/testowl/rspec_runner.rb +7 -12
- data/lib/testowl/test_unit_runner.rb +9 -13
- data/lib/testowl/tester.rb +6 -4
- data/lib/testowl/version.rb +1 -1
- metadata +4 -4
data/lib/testowl/growl.rb
CHANGED
|
@@ -3,7 +3,7 @@ module Testowl
|
|
|
3
3
|
|
|
4
4
|
Growlnotify = "growlnotify"
|
|
5
5
|
|
|
6
|
-
def self.grr(title, message, status, files, suffix)
|
|
6
|
+
def self.grr(title, message, seconds, status, files, suffix)
|
|
7
7
|
project = File.expand_path(".").split("/").last
|
|
8
8
|
growlnotify = `which #{Growlnotify}`.chomp
|
|
9
9
|
if growlnotify == ''
|
|
@@ -14,9 +14,12 @@ module Testowl
|
|
|
14
14
|
@warning_done = true
|
|
15
15
|
end
|
|
16
16
|
else
|
|
17
|
+
message_lines = [message.gsub("'", "`")]
|
|
18
|
+
message_lines << sprintf("(%0.1f seconds)", seconds) if seconds
|
|
19
|
+
message_lines << "#{files.map{|file| file.sub(/^spec\/[^\/]*\//, '').sub(/_test.rb$/, '')}.join("\n")}\n#{suffix}"
|
|
17
20
|
options = []
|
|
18
21
|
options << "-n Watchr"
|
|
19
|
-
options << "--message '#{
|
|
22
|
+
options << "--message '#{message_lines.join("\n\n")}'"
|
|
20
23
|
options << "--sticky" if status == :error
|
|
21
24
|
options << "--image '#{image_path(status)}'"
|
|
22
25
|
options << "--identifier #{Digest::MD5.hexdigest files.join}" # (used for coalescing)
|
data/lib/testowl/monitor.rb
CHANGED
|
@@ -8,10 +8,12 @@ module Testowl
|
|
|
8
8
|
@runner = RspecRunner.new
|
|
9
9
|
@test_dir = "spec"
|
|
10
10
|
@test_suffix = "spec"
|
|
11
|
+
puts "TestOwl #{VERSION} has detected RSpec"
|
|
11
12
|
elsif File.exist?("test/test_helper.rb")
|
|
12
13
|
@runner = TestUnitRunner.new
|
|
13
14
|
@test_dir = "test"
|
|
14
15
|
@test_suffix = "test"
|
|
16
|
+
puts "TestOwl #{VERSION} has detected Test Unit"
|
|
15
17
|
else
|
|
16
18
|
raise "Can't find either spec_helper.rb or test_helper.rb and this owl is confused."
|
|
17
19
|
end
|
|
@@ -34,7 +36,7 @@ module Testowl
|
|
|
34
36
|
puts "Detected change in #{match[0]}"
|
|
35
37
|
run_controller(match[1], "triggered by #{match[0]}")
|
|
36
38
|
end
|
|
37
|
-
puts "
|
|
39
|
+
puts "Waiting for code changes..."
|
|
38
40
|
Watchr::Controller.new(script, Watchr.handler.new).run
|
|
39
41
|
end
|
|
40
42
|
|
data/lib/testowl/rspec_runner.rb
CHANGED
|
@@ -3,20 +3,15 @@ module Testowl
|
|
|
3
3
|
|
|
4
4
|
def run(files)
|
|
5
5
|
results = runDirectly(files)
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
timing =
|
|
12
|
-
timing = timing.sub(/Finished\sin/, '').strip if timing
|
|
6
|
+
count_match = /(\d+)\sexamples?,\s(\d+)\sfailures?/.match(results)
|
|
7
|
+
timing_match = /Finished\sin\s([0-9\.]*)\sseconds/.match(results)
|
|
8
|
+
if count_match && timing_match
|
|
9
|
+
test_count = count_match[1].to_i
|
|
10
|
+
fail_count = count_match[2].to_i
|
|
11
|
+
timing = timing_match[1].to_f
|
|
13
12
|
return test_count, fail_count, timing
|
|
14
13
|
else
|
|
15
|
-
|
|
16
|
-
raise exception_message
|
|
17
|
-
else
|
|
18
|
-
raise "Problem interpreting result. Please check the terminal output."
|
|
19
|
-
end
|
|
14
|
+
raise "Problem interpreting result. Please check the terminal output."
|
|
20
15
|
end
|
|
21
16
|
end
|
|
22
17
|
|
|
@@ -18,21 +18,17 @@ module Testowl
|
|
|
18
18
|
runDirectly(files)
|
|
19
19
|
end
|
|
20
20
|
puts "Done"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
timing =
|
|
21
|
+
count_match = /(\d+)\sassertions?,\s(\d+)\sfailures?,\s(\d+)\serrors?/.match(results)
|
|
22
|
+
timing_match = /Finished\sin\s([0-9\.]*)\sseconds/.match(results)
|
|
23
|
+
puts count_match
|
|
24
|
+
puts timing_match
|
|
25
|
+
if count_match && timing_match
|
|
26
|
+
test_count = count_match[1].to_i
|
|
27
|
+
fail_count = count_match[2].to_i + count_match[3].to_i # let's lump errors and failures together
|
|
28
|
+
timing = timing_match[1].to_f
|
|
29
29
|
return test_count, fail_count, timing
|
|
30
30
|
else
|
|
31
|
-
|
|
32
|
-
raise exception_message
|
|
33
|
-
else
|
|
34
|
-
raise "Problem interpreting result. Please check the terminal output."
|
|
35
|
-
end
|
|
31
|
+
raise "Problem interpreting result. Please check the terminal output."
|
|
36
32
|
end
|
|
37
33
|
end
|
|
38
34
|
|
data/lib/testowl/tester.rb
CHANGED
|
@@ -14,6 +14,7 @@ module Testowl
|
|
|
14
14
|
def run
|
|
15
15
|
test_count = 0
|
|
16
16
|
fail_count = 0
|
|
17
|
+
seconds = 0
|
|
17
18
|
files_run = []
|
|
18
19
|
begin
|
|
19
20
|
@files_list.each do |files|
|
|
@@ -21,20 +22,21 @@ module Testowl
|
|
|
21
22
|
files_run += files
|
|
22
23
|
test_count += result[0]
|
|
23
24
|
fail_count += result[1]
|
|
25
|
+
seconds += result[2]
|
|
24
26
|
break if fail_count > 0
|
|
25
27
|
end
|
|
26
28
|
if test_count == 0
|
|
27
|
-
Growl.grr "Empty Test", "No tests run", :error, files_run, @reason
|
|
29
|
+
Growl.grr "Empty Test", "No tests run", seconds, :error, files_run, @reason
|
|
28
30
|
return false
|
|
29
31
|
elsif fail_count > 0
|
|
30
|
-
Growl.grr "Fail", "#{fail_count} out of #{test_count} test#{'s' if test_count > 1} failed :(", :failed, files_run, @reason
|
|
32
|
+
Growl.grr "Fail", "#{fail_count} out of #{test_count} test#{'s' if test_count > 1} failed :(", seconds, :failed, files_run, @reason
|
|
31
33
|
return false
|
|
32
34
|
else
|
|
33
|
-
Growl.grr "Pass", "All #{test_count} example#{'s' if test_count > 1} passed :)", :success, files_run, @reason
|
|
35
|
+
Growl.grr "Pass", "All #{test_count} example#{'s' if test_count > 1} passed :)", seconds, :success, files_run, @reason
|
|
34
36
|
return true
|
|
35
37
|
end
|
|
36
38
|
rescue => exc
|
|
37
|
-
Growl.grr "Exception", exc.message, :error, files_run, @reason
|
|
39
|
+
Growl.grr "Exception", exc.message, nil, :error, files_run, @reason
|
|
38
40
|
end
|
|
39
41
|
end
|
|
40
42
|
|
data/lib/testowl/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: testowl
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 15
|
|
5
5
|
prerelease:
|
|
6
6
|
segments:
|
|
7
7
|
- 0
|
|
8
8
|
- 0
|
|
9
|
-
-
|
|
10
|
-
version: 0.0.
|
|
9
|
+
- 8
|
|
10
|
+
version: 0.0.8
|
|
11
11
|
platform: ruby
|
|
12
12
|
authors:
|
|
13
13
|
- Bill Horsman
|
|
@@ -15,7 +15,7 @@ autorequire:
|
|
|
15
15
|
bindir: bin
|
|
16
16
|
cert_chain: []
|
|
17
17
|
|
|
18
|
-
date: 2011-06-
|
|
18
|
+
date: 2011-06-30 00:00:00 -07:00
|
|
19
19
|
default_executable:
|
|
20
20
|
dependencies:
|
|
21
21
|
- !ruby/object:Gem::Dependency
|