turn 0.8.1 → 0.8.2
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +7 -0
- data/Rakefile +0 -1
- data/Version.txt +1 -1
- data/demo/test_autorun_minitest.rb +2 -0
- data/demo/test_counts.rb +17 -0
- data/lib/turn/autorun/minitest.rb +20 -2
- data/lib/turn/autorun/testunit.rb +19 -5
- data/lib/turn/command.rb +24 -2
- data/lib/turn/controller.rb +16 -5
- data/lib/turn/runners/minirunner.rb +89 -113
- data/lib/turn/runners/testrunner.rb +8 -3
- data/lib/turn/version.rb +3 -0
- data/turn.gemspec +49 -0
- metadata +15 -12
data/History.txt
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
== 0.8.2 / 2011-03-31
|
2
|
+
* Add version in code and cli option to diplay it.
|
3
|
+
* Fix for files lookup controller bug
|
4
|
+
* Limit default test matching to *.rb files.
|
5
|
+
* Show first line from the test file when showing stack traces [F. Morgan Whitney]
|
6
|
+
* Make minitest output compatible with natural language case naming [David Heinemeier Hansson]
|
7
|
+
|
1
8
|
== 0.8.1 / 2010-09-10
|
2
9
|
* Fix misspelling of "raised" which prevented proper recording of errors.
|
3
10
|
* Fix IsoRunner so it passes error, not just error message.
|
data/Rakefile
CHANGED
data/Version.txt
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.8.
|
1
|
+
0.8.2
|
data/demo/test_counts.rb
ADDED
@@ -7,6 +7,16 @@ class MiniTest::Unit
|
|
7
7
|
include ANSI::Code
|
8
8
|
|
9
9
|
PADDING_SIZE = 4
|
10
|
+
|
11
|
+
@@use_natural_language_case_names = false
|
12
|
+
def self.use_natural_language_case_names=(boolean)
|
13
|
+
@use_natural_language_case_names = boolean
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.use_natural_language_case_names?
|
17
|
+
@use_natural_language_case_names
|
18
|
+
end
|
19
|
+
|
10
20
|
|
11
21
|
def run(args = [])
|
12
22
|
@verbose = true
|
@@ -14,7 +24,14 @@ class MiniTest::Unit
|
|
14
24
|
filter = if args.first =~ /^(-n|--name)$/ then
|
15
25
|
args.shift
|
16
26
|
arg = args.shift
|
17
|
-
arg =~ /\/(.*)\//
|
27
|
+
if arg =~ /\/(.*)\//
|
28
|
+
Regexp.new($1)
|
29
|
+
elsif MiniTest::Unit.use_natural_language_case_names?
|
30
|
+
# Turn 'sample error1' into 'test_sample_error1'
|
31
|
+
arg[0..4] == "test_" ? arg.gsub(" ", "_") : "test_" + arg.gsub(" ", "_")
|
32
|
+
else
|
33
|
+
arg
|
34
|
+
end
|
18
35
|
else
|
19
36
|
/./ # anything - ^test_ already filtered by #tests
|
20
37
|
end
|
@@ -73,7 +90,8 @@ class MiniTest::Unit
|
|
73
90
|
end)
|
74
91
|
|
75
92
|
|
76
|
-
@@out.print
|
93
|
+
@@out.print MiniTest::Unit.use_natural_language_case_names? ?
|
94
|
+
" #{test.gsub("test_", "").gsub(/_/, " ")}" : " #{test}"
|
77
95
|
@@out.print " (%.2fs) " % (Time.now - t)
|
78
96
|
|
79
97
|
if @broken
|
@@ -35,8 +35,8 @@ module Console
|
|
35
35
|
|
36
36
|
bar = '=' * 78
|
37
37
|
if COLORIZE
|
38
|
-
bar = if pass == total then ::ANSI::Code.green
|
39
|
-
else ::ANSI::Code.red
|
38
|
+
bar = if pass == total then ::ANSI::Code.green{bar}
|
39
|
+
else ::ANSI::Code.red{bar} end
|
40
40
|
end
|
41
41
|
|
42
42
|
turn_out.puts bar
|
@@ -49,7 +49,7 @@ module Console
|
|
49
49
|
method, file = name.scan(%r/^([^\(]+)\(([^\)]+)\)/o).flatten!
|
50
50
|
if @t_cur_file != file
|
51
51
|
@t_cur_file = file
|
52
|
-
file = COLORIZE ? ::ANSI::Code.yellow
|
52
|
+
file = COLORIZE ? ::ANSI::Code.yellow{file} : file
|
53
53
|
turn_out.puts file
|
54
54
|
end
|
55
55
|
turn_out.print " %-69s" % method
|
@@ -69,16 +69,30 @@ module Console
|
|
69
69
|
turn_out.puts ERROR
|
70
70
|
msg << fault.to_s.split("\n")[2..-1].join("\n\t")
|
71
71
|
when ::Test::Unit::Failure
|
72
|
+
test_name = underscore(fault.test_name.match(/\((.*)\)/)[1])
|
73
|
+
better_location = fault.location.detect{|line|line.include?(test_name)} || fault.location[0]
|
72
74
|
turn_out.puts " #{FAIL}"
|
73
|
-
msg <<
|
75
|
+
msg << better_location.to_s << "\n\t"
|
74
76
|
msg << fault.message.gsub("\n","\n\t")
|
75
77
|
end
|
76
78
|
|
77
|
-
msg = ::ANSI::Code.magenta
|
79
|
+
msg = ::ANSI::Code.magenta{msg} if COLORIZE
|
78
80
|
turn_out.puts msg
|
79
81
|
end
|
80
82
|
|
81
83
|
private
|
84
|
+
|
85
|
+
# Taken from ActiveSupport::Inflector
|
86
|
+
def underscore(camel_cased_word)
|
87
|
+
word = camel_cased_word.to_s.dup
|
88
|
+
word.gsub!(/::/, '/')
|
89
|
+
word.gsub!(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
|
90
|
+
word.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
|
91
|
+
word.tr!("-", "_")
|
92
|
+
word.downcase!
|
93
|
+
word
|
94
|
+
end
|
95
|
+
|
82
96
|
def setup_mediator
|
83
97
|
@mediator = create_mediator(@suite)
|
84
98
|
suite_name = @suite.to_s
|
data/lib/turn/command.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'optparse'
|
2
|
-
require 'turn/controller'
|
3
2
|
|
4
3
|
module Turn
|
4
|
+
require 'turn/controller'
|
5
5
|
|
6
6
|
# Turn - Pretty Unit Test Runner for Ruby
|
7
7
|
#
|
@@ -46,6 +46,9 @@ module Turn
|
|
46
46
|
# Only run tests matching this pattern.
|
47
47
|
attr :pattern
|
48
48
|
|
49
|
+
# Only run testcases matching this pattern.
|
50
|
+
attr :matchcase
|
51
|
+
|
49
52
|
# List of paths to add to $LOAD_PATH
|
50
53
|
attr :loadpath
|
51
54
|
|
@@ -66,6 +69,7 @@ module Turn
|
|
66
69
|
@live = nil
|
67
70
|
@log = nil
|
68
71
|
@pattern = nil
|
72
|
+
@matchcase = nil
|
69
73
|
@loadpath = []
|
70
74
|
@requires = []
|
71
75
|
@runmode = nil
|
@@ -95,7 +99,19 @@ module Turn
|
|
95
99
|
end
|
96
100
|
|
97
101
|
opts.on('-n', '--name=PATTERN', "only run tests that match PATTERN") do |pattern|
|
98
|
-
|
102
|
+
if pattern =~ /\/(.*)\//
|
103
|
+
@pattern = Regexp.new($1)
|
104
|
+
else
|
105
|
+
@pattern = Regexp.new(pattern, Regexp::IGNORECASE)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
opts.on('-t', '--testcase=PATTERN', "only run testcases that match PATTERN") do |pattern|
|
110
|
+
if pattern =~ /\/(.*)\//
|
111
|
+
@matchcase = Regexp.new($1)
|
112
|
+
else
|
113
|
+
@matchcase = Regexp.new(pattern, Regexp::IGNORECASE)
|
114
|
+
end
|
99
115
|
end
|
100
116
|
|
101
117
|
opts.on('-m', '--minitest', "Force use of MiniTest framework") do
|
@@ -169,6 +185,11 @@ module Turn
|
|
169
185
|
$DEBUG = true
|
170
186
|
end
|
171
187
|
|
188
|
+
opts.on_tail('--version', "display version") do
|
189
|
+
puts VERSION
|
190
|
+
exit
|
191
|
+
end
|
192
|
+
|
172
193
|
opts.on_tail('--help', '-h', "display this help information") do
|
173
194
|
puts opts
|
174
195
|
exit
|
@@ -193,6 +214,7 @@ module Turn
|
|
193
214
|
c.runmode = runmode
|
194
215
|
c.format = outmode
|
195
216
|
c.pattern = pattern
|
217
|
+
c.matchcase = matchcase
|
196
218
|
c.framework = framework
|
197
219
|
end
|
198
220
|
|
data/lib/turn/controller.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'fileutils'
|
2
2
|
|
3
3
|
module Turn
|
4
|
+
require 'turn/version'
|
4
5
|
require 'turn/components/suite.rb'
|
5
6
|
require 'turn/components/case.rb'
|
6
7
|
require 'turn/components/method.rb'
|
@@ -12,17 +13,20 @@ module Turn
|
|
12
13
|
#++
|
13
14
|
class Controller
|
14
15
|
|
15
|
-
#
|
16
|
-
# Can be an array of files/globs.
|
16
|
+
# List of if file names or glob pattern of tests to run.
|
17
17
|
attr_accessor :tests
|
18
18
|
|
19
|
-
#
|
19
|
+
# List of file names or globs to exclude from +tests+ list.
|
20
20
|
attr_accessor :exclude
|
21
21
|
|
22
22
|
# Regexp pattern that all test name's must
|
23
23
|
# match to be eligible to run.
|
24
24
|
attr_accessor :pattern
|
25
25
|
|
26
|
+
# Regexp pattern that all test cases must
|
27
|
+
# match to be eligible to run.
|
28
|
+
attr_accessor :matchcase
|
29
|
+
|
26
30
|
# Add these folders to the $LOAD_PATH.
|
27
31
|
attr_accessor :loadpath
|
28
32
|
|
@@ -60,12 +64,12 @@ module Turn
|
|
60
64
|
#
|
61
65
|
def initialize_defaults
|
62
66
|
@loadpath ||= ['lib']
|
63
|
-
@tests ||= "test/**/{test,}*{,test}"
|
67
|
+
@tests ||= ["test/**/{test,}*{,test}.rb"]
|
64
68
|
@exclude ||= []
|
65
69
|
@requires ||= []
|
66
70
|
@live ||= false
|
67
71
|
@log ||= true
|
68
|
-
#@
|
72
|
+
#@format ||= nil
|
69
73
|
#@runner ||= RUBY_VERSION >= "1.9" ? MiniRunner : TestRunner
|
70
74
|
@pattern ||= /.*/
|
71
75
|
end
|
@@ -100,6 +104,10 @@ module Turn
|
|
100
104
|
|
101
105
|
public
|
102
106
|
|
107
|
+
def tests=(paths)
|
108
|
+
@tests = list_option(paths)
|
109
|
+
end
|
110
|
+
|
103
111
|
def loadpath=(paths)
|
104
112
|
@loadpath = list_option(paths)
|
105
113
|
end
|
@@ -112,16 +120,19 @@ module Turn
|
|
112
120
|
@requires = list_option(paths)
|
113
121
|
end
|
114
122
|
|
123
|
+
# Test files.
|
115
124
|
def files
|
116
125
|
@files ||= (
|
117
126
|
fs = tests.map do |t|
|
118
127
|
File.directory?(t) ? Dir[File.join(t, '**', '*')] : Dir[t]
|
119
128
|
end
|
120
129
|
fs = fs.flatten.reject{ |f| File.directory?(f) }
|
130
|
+
|
121
131
|
ex = exclude.map do |x|
|
122
132
|
File.directory?(x) ? Dir[File.join(x, '**', '*')] : Dir[x]
|
123
133
|
end
|
124
134
|
ex = ex.flatten.reject{ |f| File.directory?(f) }
|
135
|
+
|
125
136
|
(fs - ex).uniq.map{ |f| File.expand_path(f) }
|
126
137
|
)
|
127
138
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
require 'stringio'
|
2
2
|
|
3
3
|
# Becuase of some wierdness in MiniTest
|
4
4
|
debug, $DEBUG = $DEBUG, false
|
@@ -13,8 +13,9 @@ module Turn
|
|
13
13
|
#
|
14
14
|
class MiniRunner < ::MiniTest::Unit
|
15
15
|
|
16
|
-
#
|
16
|
+
# Override initialize to take controller argument.
|
17
17
|
def initialize(controller)
|
18
|
+
@turn_controller = controller
|
18
19
|
|
19
20
|
controller.loadpath.each{ |path| $: << path } unless controller.live?
|
20
21
|
controller.requires.each{ |path| require(path) }
|
@@ -44,146 +45,121 @@ module Turn
|
|
44
45
|
@turn_logger = controller.reporter
|
45
46
|
|
46
47
|
super()
|
48
|
+
|
49
|
+
# route minitests traditional output to nowhere
|
50
|
+
# (instead of overriding #puts and #print)
|
51
|
+
@@out = ::StringIO.new
|
47
52
|
end
|
48
53
|
|
49
|
-
#
|
54
|
+
# Turn calls this method to start the test run.
|
50
55
|
def start(args=[])
|
51
56
|
run(args)
|
52
57
|
return @turn_suite
|
53
58
|
end
|
54
59
|
|
55
|
-
#
|
56
|
-
def
|
57
|
-
@
|
60
|
+
# Override #_run_suite to setup Turn.
|
61
|
+
def _run_suites suites, type
|
62
|
+
@turn_suite = Turn::TestSuite.new(@turn_suite_name)
|
63
|
+
@turn_suite.size = ::MiniTest::Unit::TestCase.test_suites.size
|
58
64
|
|
59
|
-
|
60
|
-
args.shift
|
61
|
-
arg = args.shift
|
62
|
-
arg =~ /\/(.*)\// ? Regexp.new($1) : arg
|
63
|
-
else
|
64
|
-
/./ # anything - ^test_ already filtered by #tests
|
65
|
-
end
|
65
|
+
@turn_logger.start_suite(@turn_suite)
|
66
66
|
|
67
|
-
|
67
|
+
if @turn_controller.matchcase
|
68
|
+
suites = suites.select{ |suite| @turn_controller.matchcase =~ suite.name }
|
69
|
+
end
|
68
70
|
|
69
|
-
|
71
|
+
result = suites.map { |suite| _run_suite(suite, type) }
|
70
72
|
|
71
|
-
|
73
|
+
@turn_logger.finish_suite(@turn_suite)
|
72
74
|
|
73
|
-
return
|
75
|
+
return result
|
74
76
|
end
|
75
77
|
|
76
|
-
#
|
77
|
-
def
|
78
|
-
|
79
|
-
|
78
|
+
# Override #_run_suite to iterate tests via Turn.
|
79
|
+
def _run_suite suite, type
|
80
|
+
# suites are cases in minitest
|
81
|
+
@turn_case = @turn_suite.new_case(suite.name)
|
80
82
|
|
81
|
-
|
82
|
-
|
83
|
-
|
83
|
+
filter = @turn_controller.pattern || /./
|
84
|
+
|
85
|
+
suite.send("#{type}_methods").grep(filter).each do |test|
|
86
|
+
@turn_case.new_test(test)
|
87
|
+
end
|
84
88
|
|
85
|
-
|
89
|
+
@turn_logger.start_case(@turn_case)
|
86
90
|
|
87
|
-
|
91
|
+
header = "#{type}_suite_header"
|
92
|
+
puts send(header, suite) if respond_to? header
|
88
93
|
|
89
|
-
|
94
|
+
assertions = @turn_case.tests.map do |test|
|
95
|
+
@turn_test = test
|
96
|
+
@turn_logger.start_test(@turn_test)
|
90
97
|
|
91
|
-
|
92
|
-
|
93
|
-
end
|
98
|
+
inst = suite.new(test.name) #method
|
99
|
+
inst._assertions = 0
|
94
100
|
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
@turn_test = test #@turn_case.new_test(test)
|
100
|
-
@turn_logger.start_test(@turn_test)
|
101
|
-
|
102
|
-
inst = kase.new(test.name)
|
103
|
-
inst._assertions = 0
|
104
|
-
|
105
|
-
result = inst.run(self)
|
106
|
-
report = @report.last
|
107
|
-
|
108
|
-
case result
|
109
|
-
when :pass
|
110
|
-
@turn_logger.pass
|
111
|
-
when :error
|
112
|
-
#trace = ::MiniTest::filter_backtrace(report[:exception].backtrace).first
|
113
|
-
@turn_test.error!(report)
|
114
|
-
@turn_logger.error(report)
|
115
|
-
when :fail
|
116
|
-
#trace = ::MiniTest::filter_backtrace(report[:exception].backtrace).first
|
117
|
-
@turn_test.fail!(report)
|
118
|
-
@turn_logger.fail(report)
|
119
|
-
when :skip
|
120
|
-
@turn_test.skip! #(report)
|
121
|
-
@turn_logger.skip #(report)
|
122
|
-
end
|
123
|
-
|
124
|
-
@turn_logger.finish_test(@turn_test)
|
125
|
-
|
126
|
-
@test_count += 1
|
127
|
-
@assertion_count += inst._assertions
|
101
|
+
result = inst.run self
|
102
|
+
|
103
|
+
if result == "."
|
104
|
+
@turn_logger.pass
|
128
105
|
end
|
129
|
-
|
130
|
-
@turn_logger.
|
106
|
+
|
107
|
+
@turn_logger.finish_test(@turn_test)
|
108
|
+
|
109
|
+
inst._assertions
|
131
110
|
end
|
132
|
-
|
133
|
-
|
134
|
-
|
111
|
+
|
112
|
+
@turn_case.count_assertions = assertions.inject(0) { |sum, n| sum + n }
|
113
|
+
|
114
|
+
@turn_logger.finish_case(@turn_case)
|
115
|
+
|
116
|
+
return assertions.size, assertions.inject(0) { |sum, n| sum + n }
|
135
117
|
end
|
136
118
|
|
137
|
-
#
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
@errors += 1
|
152
|
-
result = :error
|
153
|
-
"#{e.class}: #{e.message}\n"
|
154
|
-
end
|
155
|
-
|
156
|
-
@report << e #{:message => msg, :exception => e}
|
157
|
-
result
|
119
|
+
# Override #puke to update Turn's internals and reporter.
|
120
|
+
def puke(klass, meth, err)
|
121
|
+
case err
|
122
|
+
when MiniTest::Skip
|
123
|
+
@turn_test.skip!
|
124
|
+
@turn_logger.skip #(e)
|
125
|
+
when MiniTest::Assertion
|
126
|
+
@turn_test.fail!(err)
|
127
|
+
@turn_logger.fail(err)
|
128
|
+
else
|
129
|
+
@turn_test.error!(err)
|
130
|
+
@turn_logger.error(err)
|
131
|
+
end
|
132
|
+
super(klass, meth, err)
|
158
133
|
end
|
159
134
|
|
160
|
-
|
135
|
+
# To maintain compatibility with old versions of MiniTest.
|
136
|
+
if ::MiniTest::Unit::VERSION < '2.0'
|
161
137
|
|
162
|
-
|
138
|
+
#attr_accessor :options
|
139
|
+
|
140
|
+
#
|
141
|
+
def run(args=[])
|
142
|
+
suites = ::MiniTest::Unit::TestCase.test_suites
|
143
|
+
return if suites.empty?
|
144
|
+
|
145
|
+
@test_count, @assertion_count = 0, 0
|
146
|
+
sync = @@out.respond_to? :"sync=" # stupid emacs
|
147
|
+
old_sync, @@out.sync = @@out.sync, true if sync
|
163
148
|
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
@passed = true
|
175
|
-
rescue Exception => e
|
176
|
-
@passed = false
|
177
|
-
result = runner.puke(self.class, self.__name__.to_s, e)
|
178
|
-
ensure
|
179
|
-
begin
|
180
|
-
self.teardown
|
181
|
-
rescue Exception => e
|
182
|
-
result = runner.puke(self.class, self.__name__.to_s, e)
|
149
|
+
results = _run_suites suites, :test #type
|
150
|
+
|
151
|
+
@test_count = results.inject(0) { |sum, (tc, _)| sum + tc }
|
152
|
+
@assertion_count = results.inject(0) { |sum, (_, ac)| sum + ac }
|
153
|
+
|
154
|
+
@@out.sync = old_sync if sync
|
155
|
+
|
156
|
+
return failures + errors if @test_count > 0 # or return nil...
|
157
|
+
rescue Interrupt
|
158
|
+
abort 'Interrupted'
|
183
159
|
end
|
160
|
+
|
184
161
|
end
|
185
|
-
|
162
|
+
|
186
163
|
end
|
187
|
-
$VERBOSE = old_verbose
|
188
|
-
end
|
189
164
|
|
165
|
+
end
|
@@ -38,11 +38,16 @@ module Turn
|
|
38
38
|
end
|
39
39
|
suite = Test::Unit::TestSuite.new(name)
|
40
40
|
|
41
|
+
matchcase = controller.matchcase
|
42
|
+
pattern = controller.pattern
|
43
|
+
|
44
|
+
if matchcase
|
45
|
+
sub_suites = sub_suites.select{|s| matchcase =~ s.name}
|
46
|
+
end
|
41
47
|
sub_suites.sort_by{|s|s.name}.each{|s| suite << s}
|
42
48
|
|
43
49
|
suite.tests.each do |c|
|
44
|
-
pattern
|
45
|
-
c.tests.reject! { |t| pattern !~ t.method_name }
|
50
|
+
c.tests.reject!{ |t| pattern !~ t.method_name }
|
46
51
|
end
|
47
52
|
|
48
53
|
@t_reporter = controller.reporter
|
@@ -118,7 +123,7 @@ module Turn
|
|
118
123
|
@t_reporter.finish_test(@t_test)
|
119
124
|
end
|
120
125
|
|
121
|
-
|
126
|
+
def t_case_finished(name)
|
122
127
|
# Err.. why is testunit running this on the suite?
|
123
128
|
return if name=='' # FIXME skip suite call
|
124
129
|
|
data/lib/turn/version.rb
ADDED
data/turn.gemspec
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{turn}
|
5
|
+
s.version = "0.8.1"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Tim Pease"]
|
9
|
+
s.date = %q{2010-09-09}
|
10
|
+
s.default_executable = %q{turn}
|
11
|
+
s.description = %q{TURN is a new way to view Test::Unit results. With longer running tests, it
|
12
|
+
can be very frustrating to see a failure (....F...) and then have to wait till
|
13
|
+
all the tests finish before you can see what the exact failure was. TURN
|
14
|
+
displays each test on a separate line with failures being displayed
|
15
|
+
immediately instead of at the end of the tests.
|
16
|
+
|
17
|
+
If you have the 'ansi' gem installed, then TURN output will be displayed in
|
18
|
+
wonderful technicolor (but only if your terminal supports ANSI color codes).
|
19
|
+
Well, the only colors are green and red, but that is still color.}
|
20
|
+
s.email = %q{tim.pease@gmail.com}
|
21
|
+
s.executables = ["turn"]
|
22
|
+
s.extra_rdoc_files = ["History.txt", "README.txt", "Release.txt", "Version.txt", "bin/turn"]
|
23
|
+
s.files = ["History.txt", "README.txt", "Rakefile", "Release.txt", "Version.txt", "bin/turn", "demo/test_autorun_minitest.rb", "demo/test_autorun_testunit.rb", "demo/test_sample.rb", "demo/test_sample2.rb", "lib/turn.rb", "lib/turn/autorun/minitest.rb", "lib/turn/autorun/testunit.rb", "lib/turn/bin.rb", "lib/turn/colorize.rb", "lib/turn/command.rb", "lib/turn/components/case.rb", "lib/turn/components/method.rb", "lib/turn/components/suite.rb", "lib/turn/controller.rb", "lib/turn/core_ext.rb", "lib/turn/reporter.rb", "lib/turn/reporters/cue_reporter.rb", "lib/turn/reporters/dot_reporter.rb", "lib/turn/reporters/marshal_reporter.rb", "lib/turn/reporters/outline_reporter.rb", "lib/turn/reporters/pretty_reporter.rb", "lib/turn/reporters/progress_reporter.rb", "lib/turn/runners/crossrunner.rb", "lib/turn/runners/isorunner.rb", "lib/turn/runners/loadrunner.rb", "lib/turn/runners/minirunner.rb", "lib/turn/runners/solorunner.rb", "lib/turn/runners/testrunner.rb", "test/helper.rb", "test/runner", "test/test_framework.rb", "test/test_reporters.rb", "test/test_runners.rb"]
|
24
|
+
s.homepage = %q{http://gemcutter.org/gems/turn}
|
25
|
+
s.rdoc_options = ["--main", "README.txt"]
|
26
|
+
s.require_paths = ["lib"]
|
27
|
+
s.rubyforge_project = %q{codeforpeople}
|
28
|
+
s.rubygems_version = %q{1.5.2}
|
29
|
+
s.summary = %q{Test::Unit Reporter (New) -- new output format for Test::Unit}
|
30
|
+
s.test_files = ["test/test_framework.rb", "test/test_reporters.rb", "test/test_runners.rb"]
|
31
|
+
|
32
|
+
if s.respond_to? :specification_version then
|
33
|
+
s.specification_version = 3
|
34
|
+
|
35
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
36
|
+
s.add_runtime_dependency(%q<ansi>, [">= 1.2.2"])
|
37
|
+
s.add_development_dependency(%q<bones-git>, [">= 1.2.0"])
|
38
|
+
s.add_development_dependency(%q<bones>, [">= 3.4.7"])
|
39
|
+
else
|
40
|
+
s.add_dependency(%q<ansi>, [">= 1.2.2"])
|
41
|
+
s.add_dependency(%q<bones-git>, [">= 1.2.0"])
|
42
|
+
s.add_dependency(%q<bones>, [">= 3.4.7"])
|
43
|
+
end
|
44
|
+
else
|
45
|
+
s.add_dependency(%q<ansi>, [">= 1.2.2"])
|
46
|
+
s.add_dependency(%q<bones-git>, [">= 1.2.0"])
|
47
|
+
s.add_dependency(%q<bones>, [">= 3.4.7"])
|
48
|
+
end
|
49
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: turn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 59
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 8
|
9
|
-
-
|
10
|
-
version: 0.8.
|
9
|
+
- 2
|
10
|
+
version: 0.8.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Tim Pease
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2011-03-31 00:00:00 -06:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -42,12 +42,12 @@ dependencies:
|
|
42
42
|
requirements:
|
43
43
|
- - ">="
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
hash:
|
45
|
+
hash: 23
|
46
46
|
segments:
|
47
47
|
- 1
|
48
48
|
- 2
|
49
|
-
-
|
50
|
-
version: 1.2.
|
49
|
+
- 4
|
50
|
+
version: 1.2.4
|
51
51
|
type: :development
|
52
52
|
version_requirements: *id002
|
53
53
|
- !ruby/object:Gem::Dependency
|
@@ -58,12 +58,12 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
hash:
|
61
|
+
hash: 21
|
62
62
|
segments:
|
63
63
|
- 3
|
64
|
-
-
|
65
|
-
-
|
66
|
-
version: 3.
|
64
|
+
- 6
|
65
|
+
- 5
|
66
|
+
version: 3.6.5
|
67
67
|
type: :development
|
68
68
|
version_requirements: *id003
|
69
69
|
description: |-
|
@@ -96,6 +96,7 @@ files:
|
|
96
96
|
- bin/turn
|
97
97
|
- demo/test_autorun_minitest.rb
|
98
98
|
- demo/test_autorun_testunit.rb
|
99
|
+
- demo/test_counts.rb
|
99
100
|
- demo/test_sample.rb
|
100
101
|
- demo/test_sample2.rb
|
101
102
|
- lib/turn.rb
|
@@ -122,11 +123,13 @@ files:
|
|
122
123
|
- lib/turn/runners/minirunner.rb
|
123
124
|
- lib/turn/runners/solorunner.rb
|
124
125
|
- lib/turn/runners/testrunner.rb
|
126
|
+
- lib/turn/version.rb
|
125
127
|
- test/helper.rb
|
126
128
|
- test/runner
|
127
129
|
- test/test_framework.rb
|
128
130
|
- test/test_reporters.rb
|
129
131
|
- test/test_runners.rb
|
132
|
+
- turn.gemspec
|
130
133
|
has_rdoc: true
|
131
134
|
homepage: http://gemcutter.org/gems/turn
|
132
135
|
licenses: []
|
@@ -157,7 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
157
160
|
version: "0"
|
158
161
|
requirements: []
|
159
162
|
|
160
|
-
rubyforge_project:
|
163
|
+
rubyforge_project: turn
|
161
164
|
rubygems_version: 1.3.7
|
162
165
|
signing_key:
|
163
166
|
specification_version: 3
|