rubytest-progress 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 271bc8a82b4ca73d3d02180f4071f5fc8da814ed
4
+ data.tar.gz: 36986c53cf3fe25005fcaff3ec7af5ecccf2ac6b
5
+ SHA512:
6
+ metadata.gz: 384fce8fee6a69e0464375cb021b9932cd440aa432cd281ec23f3f25df1b3417bff6702cc7ecbb567514d7b7f1e0de28fc73d92bb5f8d757124a90a1ab68956b
7
+ data.tar.gz: e1908533a9a680ebdf0c33841f0f24f40e272b9e7c306e4dfadbb896ff142b097ae0bce91fbb29640f5a55b483ab42df17ac7e5a387bec42e53c08746b765fec
data/.index ADDED
@@ -0,0 +1,48 @@
1
+ ---
2
+ revision: 2013
3
+ type: ruby
4
+ sources:
5
+ - Indexfile
6
+ - Gemfile
7
+ authors:
8
+ - name: trans
9
+ email: transfire@gmail.com
10
+ organizations: []
11
+ requirements:
12
+ - version: '>= 0.8.0'
13
+ name: rubytest
14
+ - version: '>= 0'
15
+ name: ansi
16
+ conflicts: []
17
+ alternatives: []
18
+ resources:
19
+ - type: home
20
+ uri: http://rubyworks.github.com/rubytest-progress
21
+ label: Homepage
22
+ - type: code
23
+ uri: http://github.com/rubyworks/rubytest-progress
24
+ label: Source Code
25
+ - type: mail
26
+ uri: http://groups.google.com/group/rubyworks-mailinglist
27
+ label: Mailing List
28
+ repositories:
29
+ - name: upstream
30
+ scm: git
31
+ uri: git@github.com:rubyworks/rubytest-progress.git
32
+ categories: []
33
+ copyrights:
34
+ - holder: RubyWorks
35
+ year: '2011'
36
+ license: BSD-2-Clause
37
+ customs: []
38
+ paths:
39
+ lib:
40
+ - lib
41
+ name: rubytest-progress
42
+ title: Progress Report Format
43
+ version: 0.1.0
44
+ summary: Progress report format for Rubytest
45
+ description: This is an progress test report format for the Rubytest metaframework.
46
+ It produces a progressbar as tests are run.
47
+ created: '2011-07-23'
48
+ date: '2014-07-18'
@@ -0,0 +1,23 @@
1
+ (BSD-2-Clause License)
2
+
3
+ Redistribution and use in source and binary forms, with or without
4
+ modification, are permitted provided that the following conditions are met:
5
+
6
+ 1. Redistributions of source code must retain the above copyright notice,
7
+ this list of conditions and the following disclaimer.
8
+
9
+ 2. Redistributions in binary form must reproduce the above copyright
10
+ notice, this list of conditions and the following disclaimer in the
11
+ documentation and/or other materials provided with the distribution.
12
+
13
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
14
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
15
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
16
+ COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
17
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
19
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
20
+ OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
21
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
22
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23
+
@@ -0,0 +1,15 @@
1
+ # Rubytest Progress Reporter
2
+
3
+ Report format for Rubytest gives running progress report.
4
+
5
+
6
+ ## Requirements
7
+
8
+ * ANSI gem
9
+
10
+
11
+ ## Copyrights
12
+
13
+ Copyright 2011 Rubyworks. All rights reserved.
14
+
15
+
@@ -0,0 +1,195 @@
1
+ # encoding: UTF-8
2
+
3
+ module Test::Reporters
4
+
5
+ # Progess reporter gives test counter, precentage and times.
6
+ #
7
+ class Progress < Abstract
8
+
9
+ #
10
+ def begin_suite(suite)
11
+ @tab = 0
12
+ @total_count = total_count(suite)
13
+ @start_time = Time.now
14
+ @test_cache = {}
15
+ @count = 0
16
+
17
+ max = @total_count.to_s.size
18
+
19
+ @layout_head = " %3u%% %#{max}s %#{max}s %8s %11s %1s %s"
20
+ @layout = " %3u%% %#{max}u/%#{max}u %8s %11s %1s %s"
21
+
22
+ timer_reset
23
+ end
24
+
25
+ #
26
+ def begin_case(tc)
27
+ #tabs tc.to_s.ansi(:bold)
28
+ show_header(' ', tc.to_s)
29
+ @tab += 2
30
+ end
31
+
32
+ #
33
+ def begin_test(test)
34
+ if test.respond_to?(:topic) && test.topic
35
+ topic = test.topic.to_s.rstrip
36
+ @test_cache[topic] ||= (
37
+ show_header(' ', topic) unless topic.empty?
38
+ true
39
+ )
40
+ end
41
+ timer_reset
42
+ end
43
+
44
+ #
45
+ def pass(test)
46
+ show_line(".", test, :green)
47
+ end
48
+
49
+ #
50
+ def fail(test, exception)
51
+ show_line("F", test, :red)
52
+ end
53
+
54
+ #
55
+ def error(test, exception)
56
+ show_line("E", test, :red)
57
+ end
58
+
59
+ #
60
+ def todo(test, exception)
61
+ show_line("P", test, :yellow)
62
+ end
63
+
64
+ #
65
+ def omit(test, exception)
66
+ show_line("O", test, :cyan)
67
+ end
68
+
69
+ #
70
+ def end_case(tcase)
71
+ @tab -= 2
72
+ end
73
+
74
+ #
75
+ def end_suite(suite)
76
+ puts
77
+
78
+ if runner.verbose?
79
+ unless record[:omit].empty?
80
+ puts "OMISSIONS:\n\n"
81
+ record[:omit].reverse_each do |test, exception|
82
+ s = []
83
+ s << "#{test}".ansi(:bold)
84
+ s << "#{file_and_line(exception)}"
85
+ puts s.join("\n").tabto(4)
86
+ puts code(exception).to_s.tabto(7)
87
+ puts
88
+ end
89
+ end
90
+ end
91
+
92
+ unless record[:todo].empty?
93
+ puts "PENDING:\n\n"
94
+ record[:todo].reverse_each do |test, exception|
95
+ s = []
96
+ s << "#{test}".ansi(:bold)
97
+ s << "#{file_and_line(exception)}"
98
+ puts s.join("\n").tabto(4)
99
+ puts code(exception).to_s.tabto(7)
100
+ puts
101
+ end
102
+ end
103
+
104
+ unless record[:fail].empty?
105
+ puts "FAILURES:\n\n"
106
+ record[:fail].reverse_each do |test, exception|
107
+ s = []
108
+ s << "#{test}".ansi(:bold)
109
+ s << "#{exception}".ansi(:red)
110
+ s << "#{file_and_line(exception)}"
111
+ puts s.join("\n").tabto(4)
112
+ puts code(exception).to_s.tabto(7)
113
+ #puts " #{exception.backtrace[0]}"
114
+ puts
115
+ end
116
+ end
117
+
118
+ unless record[:error].empty?
119
+ puts "ERRORS:\n\n"
120
+ record[:error].reverse_each do |test, exception|
121
+ trace = clean_backtrace(exception)[1..-1].map{ |bt| bt.sub(Dir.pwd+'/', '') }
122
+ s = []
123
+ s << "#{test}".ansi(:bold)
124
+ s << "#{exception.class}".ansi(:red)
125
+ s << "#{exception}".ansi(:red)
126
+ s << "#{file_and_line(exception)}"
127
+ puts s.join("\n").tabto(4)
128
+ puts code(exception).to_s.tabto(7)
129
+ puts trace.join("\n").tabto(4) unless trace.empty?
130
+ puts
131
+ end
132
+ end
133
+
134
+ puts
135
+ puts timestamp
136
+ puts
137
+ puts tally
138
+ end
139
+
140
+ private
141
+
142
+ #
143
+ def show_header(status, text)
144
+ text = text[0..text.index("\n")||-1]
145
+ data = [prcnt, ' ', ' ', clock, timer, status, (' ' * @tab) + text.to_s]
146
+ #puts (" " * @tab) + (@layout_head % data)
147
+ puts (@layout_head % data).ansi(:bold)
148
+ end
149
+
150
+ #
151
+ def show_line(status, test, color)
152
+ @count += 1
153
+ data = [prcnt, @count, @total_count, clock, timer, status, (' ' * @tab) + test.to_s]
154
+ #puts (" " * @tab) + (@layout % data)
155
+ puts (@layout % data).ansi(color)
156
+ end
157
+
158
+ #
159
+ def prcnt
160
+ ((@count.to_f / @total_count) * 100).round.to_s
161
+ end
162
+
163
+ #
164
+ def clock
165
+ secs = Time.now - @start_time
166
+ m, s = secs.divmod(60)
167
+ #s, ms = s.divmod(1)
168
+ #ms = ms * 1000
169
+ return "%u:%02u" % [m, s]
170
+ end
171
+
172
+ #
173
+ def timer
174
+ secs = Time.now - @time
175
+ @time = Time.now
176
+ return "%0.5fs" % secs
177
+ end
178
+
179
+ #
180
+ def timer_reset
181
+ @time = Time.now
182
+ end
183
+
184
+ #
185
+ def tabs(str=nil)
186
+ if str
187
+ puts(str.tabto(@tab))
188
+ else
189
+ puts
190
+ end
191
+ end
192
+
193
+ end
194
+
195
+ end
metadata ADDED
@@ -0,0 +1,80 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rubytest-progress
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - trans
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-07-19 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rubytest
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: 0.8.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: 0.8.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: ansi
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: This is an progress test report format for the Rubytest metaframework.
42
+ It produces a progressbar as tests are run.
43
+ email:
44
+ - transfire@gmail.com
45
+ executables: []
46
+ extensions: []
47
+ extra_rdoc_files:
48
+ - LICENSE.txt
49
+ - README.md
50
+ files:
51
+ - .index
52
+ - lib/rubytest/format/progress.rb
53
+ - README.md
54
+ - LICENSE.txt
55
+ homepage: http://rubyworks.github.com/rubytest-progress
56
+ licenses:
57
+ - BSD-2-Clause
58
+ metadata: {}
59
+ post_install_message:
60
+ rdoc_options: []
61
+ require_paths:
62
+ - lib
63
+ required_ruby_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ required_rubygems_version: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - '>='
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
73
+ requirements: []
74
+ rubyforge_project:
75
+ rubygems_version: 2.0.3
76
+ signing_key:
77
+ specification_version: 4
78
+ summary: Progress report format for Rubytest
79
+ test_files: []
80
+ has_rdoc: