turn 0.9.3 → 0.9.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,10 +1,15 @@
1
- == 0.9.3 / 2012-02-09
1
+ == 0.9.4 / 2012-03-16
2
+ * Fix dot reporter to use `.` instead of `S` for passed tests.
3
+ * Do not filter backtraces of local directory.
4
+ * Do not colourize zero counts in pretty reporter.
5
+
6
+ == 0.9.3 / 2012-02-17
2
7
  * Default to pretty reporter.
3
8
  * Can set reporter via `rpt` environment variable.
4
9
  * Fix backtrace filter.
5
10
  * Fix require warning when using cli.
6
- * Add skip counts to reporter tallies. (t8)
7
- * Improve Pretty reporter output. (t8)
11
+ * Add skip counts to reporter tallies. (y8)
12
+ * Improve Pretty reporter output. (y8)
8
13
 
9
14
  == 0.9.2 / 2012-02-08
10
15
  * Fix colorization config issue.
@@ -1,4 +1,24 @@
1
- = Turn 0.8.0
1
+ = Release Notes
2
+
3
+ == 0.9.x
4
+
5
+ The main departure of the 0.9.x series form older version of Turn,
6
+ is that the old TestUnit library (1.x series) is no longer supported.
7
+ Turn is now a MiniTest only library.[1]
8
+
9
+ Among other imporvements, the default reporter is now the Pretty reporter
10
+ instead of the orginal Outline reporter, and MiniTest skips are finally
11
+ supported.
12
+
13
+ Big thanks to y8, Alexey Bondar and others for helpig to get this series
14
+ up to snuff.
15
+
16
+ [1] Note that the old testunit runner is still included in the package
17
+ if it is needed, but no longer will be actively maintained and it
18
+ must be directly required to be used.
19
+
20
+
21
+ == 0.8.x
2
22
 
3
23
  Version 0.8.0 is a fairly significant release for Turn. This release
4
24
  adds support for Ruby 1.9's Minitest framework. You can even use
@@ -1 +1 @@
1
- 0.9.3
1
+ 0.9.4
@@ -72,12 +72,15 @@ module Turn
72
72
  limit_backtrace(filter_backtrace(backtrace))
73
73
  end
74
74
 
75
+ # TODO: Is the text/unit line needed any more now that Dir.pwd is excluded
76
+ # from filtering?
77
+
75
78
  $RUBY_IGNORE_CALLERS ||= []
76
79
  $RUBY_IGNORE_CALLERS.concat([
77
80
  /\/lib\/turn.*\.rb/,
78
81
  /\/bin\/turn/,
79
82
  /\/lib\/minitest.*\.rb/,
80
- /\/test\/unit.*\.rb/
83
+ /\/test\/unit(?!(\/.*\_test.rb)|.*\/test_.*).*\.rb.*/
81
84
  ])
82
85
 
83
86
  # Filter backtrace of unimportant entries, and applies count limit if set in
@@ -86,14 +89,14 @@ module Turn
86
89
  # as that probably means there was an issue with the test harness itself.
87
90
  def filter_backtrace(backtrace)
88
91
  return [] unless backtrace
89
- bt = backtrace.dup
90
- bt = bt.reject{ |line| $RUBY_IGNORE_CALLERS.any?{ |re| re =~ line } } unless $DEBUG
91
- #bt.reject!{ |line| line.rindex('minitest') }
92
- #bt.reject!{ |line| line.rindex('test/unit') }
93
- #bt.reject!{ |line| line.rindex('lib/turn') }
94
- #bt.reject!{ |line| line.rindex('bin/turn') }
92
+ bt, pwd = backtrace.dup, Dir.pwd
93
+ unless $DEBUG
94
+ bt = bt.reject do |line|
95
+ $RUBY_IGNORE_CALLERS.any?{|re| re =~ line} unless line.start_with?(pwd)
96
+ end
97
+ end
95
98
  bt = backtrace if bt.empty? # if empty just dump the whole thing
96
- bt.map{ |line| line.sub(Dir.pwd+'/', '') }
99
+ bt.map{ |line| line.sub(pwd+'/', '') }
97
100
  end
98
101
 
99
102
  # Limit backtrace to number of lines if `trace` configuration option is set.
@@ -19,7 +19,7 @@ module Turn
19
19
  end
20
20
 
21
21
  def pass(message=nil)
22
- io.print Colorize.pass('S'); io.flush
22
+ io.print Colorize.pass('.'); io.flush
23
23
  end
24
24
 
25
25
  def fail(assertion, message=nil)
@@ -31,7 +31,7 @@ module Turn
31
31
  end
32
32
 
33
33
  def skip(exception, message=nil)
34
- io.print Colorize.skip('-'); io.flush
34
+ io.print Colorize.skip('S'); io.flush
35
35
  end
36
36
 
37
37
  def finish_test(test)
@@ -87,23 +87,17 @@ module Turn
87
87
 
88
88
  # After all tests are run, this is the last observable action.
89
89
  def finish_suite(suite)
90
- total = "%d tests" % suite.count_tests
91
- passes = "%d passed" % suite.count_passes
92
- assertions = "%d assertions" % suite.count_assertions
93
- failures = "%d failures" % suite.count_failures
94
- errors = "%d errors" % suite.count_errors
95
- skips = "%d skips" % suite.count_skips
90
+ total = colorize_count("%d tests", suite.count_tests, :bold)
91
+ passes = colorize_count("%d passed", suite.count_passes, :pass)
92
+ assertions = colorize_count("%d assertions", suite.count_assertions, nil)
93
+ failures = colorize_count("%d failures", suite.count_failures, :fail)
94
+ errors = colorize_count("%d errors", suite.count_errors, :error)
95
+ skips = colorize_count("%d skips", suite.count_skips, :skip)
96
96
 
97
97
  io.puts "Finished in %.6f seconds." % (Time.now - @time)
98
98
  io.puts
99
99
 
100
- io.puts [ Colorize.bold(total),
101
- Colorize.pass(passes),
102
- Colorize.fail(failures),
103
- Colorize.error(errors),
104
- Colorize.skip(skips),
105
- assertions
106
- ].join(", ")
100
+ io.puts [ total, passes, failures, errors, skips, assertions ].join(", ")
107
101
 
108
102
  # Please keep this newline, since it will be useful when after test case
109
103
  # there will be other lines. For example "rake aborted!" or kind of.
@@ -111,6 +105,18 @@ module Turn
111
105
  end
112
106
 
113
107
  private
108
+ # Creates an optionally-colorized string describing the number of occurances an event occurred.
109
+ #
110
+ # @param [String] str A printf-style string that expects an integer argument (i.e. the count)
111
+ # @param [Integer] count The number of occurances of the event being described.
112
+ # @param [nil, Symbol] colorize_method The method on Colorize to call in order to apply color to the result, or nil
113
+ # to not apply any coloring at all.
114
+ def colorize_count(str, count, colorize_method)
115
+ str= str % [count]
116
+ str= Colorize.send(colorize_method, str) if colorize_method and count != 0
117
+ str
118
+ end
119
+
114
120
  # Outputs test case header for given event (error, fail & etc)
115
121
  #
116
122
  # Example:
@@ -66,7 +66,7 @@ module Turn
66
66
  # suites are cases in minitest
67
67
  @turn_case = @turn_suite.new_case(suite.name)
68
68
 
69
- filter = @turn_config.pattern || /./
69
+ filter = @options[:filter] || @turn_config.pattern || /./
70
70
 
71
71
  suite.send("#{type}_methods").grep(filter).each do |test|
72
72
  @turn_case.new_test(test)
@@ -1,3 +1,3 @@
1
1
  module Turn
2
- VERSION = "0.9.3"
2
+ VERSION = "0.9.4"
3
3
  end
@@ -0,0 +1,35 @@
1
+ require File.expand_path(File.dirname(__FILE__)) + '/helper.rb'
2
+ require File.expand_path(File.dirname(__FILE__) + '/..') + '/lib/turn/reporter'
3
+
4
+ class TestReporter < Turn::Reporter
5
+ end
6
+
7
+ class TestReporters < Test::Unit::TestCase
8
+ def test_unit_test_files_are_not_filtered_out_if_ending_in_test
9
+ reporter = TestReporter.new(nil)
10
+
11
+ # If you follow the convention of naming your test files with _test.rb, do not filter that
12
+ # test file from the stack trace
13
+ filtered_lines = ["/Users/testman/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/test/unit/assertions.rb:185:in `assert_equal'"]
14
+ unfiltered_lines = ["/Users/testman/source/campaign_manager/test/unit/omg_test.rb:145:in `block in <class:OmgTest>'",
15
+ "/Users/testman/source/campaign_manager/app/models/omg.rb:145:in `in double_rainbows'" ]
16
+ stack_trace = filtered_lines + unfiltered_lines
17
+
18
+ assert_equal unfiltered_lines, reporter.send(:filter_backtrace, stack_trace)
19
+ end
20
+
21
+ def test_unit_test_files_are_not_filtered_out_if_file_name_starts_with_test_underscore
22
+ reporter = TestReporter.new(nil)
23
+
24
+ # If you follow the convention of naming your test files with _test.rb, do not filter that
25
+ # test file from the stack trace
26
+ filtered_lines = ["/Users/testman/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/test/unit/assertions.rb:185:in `assert_equal'"]
27
+ unfiltered_lines = ["/Users/testman/source/campaign_manager/test/unit/test_omgs.rb:145:in `block in <class:OmgTest>'",
28
+ "/Users/testman/source/campaign_manager/app/models/omg.rb:145:in `in double_rainbows'" ]
29
+ stack_trace = filtered_lines + unfiltered_lines
30
+
31
+ assert_equal unfiltered_lines, reporter.send(:filter_backtrace, stack_trace)
32
+ end
33
+
34
+
35
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.3
4
+ version: 0.9.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-02-17 00:00:00.000000000 Z
13
+ date: 2012-03-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: ansi
17
- requirement: &7615200 !ruby/object:Gem::Requirement
17
+ requirement: &21312540 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *7615200
25
+ version_requirements: *21312540
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: minitest
28
- requirement: &7613840 !ruby/object:Gem::Requirement
28
+ requirement: &21308780 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *7613840
36
+ version_requirements: *21308780
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: rake
39
- requirement: &7566920 !ruby/object:Gem::Requirement
39
+ requirement: &21307780 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,7 +44,7 @@ dependencies:
44
44
  version: '0'
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *7566920
47
+ version_requirements: *21307780
48
48
  description: Turn provides a set of alternative runners for MiniTest, both colorful
49
49
  and informative.
50
50
  email:
@@ -94,6 +94,7 @@ files:
94
94
  - lib/turn/version.rb
95
95
  - lib/turn.rb
96
96
  - test/helper.rb
97
+ - test/reporter_test.rb
97
98
  - test/runner
98
99
  - test/test_framework.rb
99
100
  - test/test_reporters.rb
@@ -136,5 +137,6 @@ rubygems_version: 1.8.11
136
137
  signing_key:
137
138
  specification_version: 3
138
139
  summary: Test Reporters (New) -- new output formats for Testing
139
- test_files: []
140
+ test_files:
141
+ - test/reporter_test.rb
140
142
  has_rdoc: