spec 5.0.18 → 5.0.19

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ccfcc8e1904aaae95d69f1595e96a0bc9e241b47
4
- data.tar.gz: 5b9c315d81625b1f34862d39f8d218a79c769787
3
+ metadata.gz: 5038d9de846696ce5a2f21796e96617307552236
4
+ data.tar.gz: ccc9abc1332c91214faa8d35e3c89cb22976ea55
5
5
  SHA512:
6
- metadata.gz: b66017678f7e5f4d4da15d4feeae02a727021f5f90213ae0d7911068a18067590d17758251a26429a4eb55d42b4976ffd6e01361805c2664f99dc611c60de42e
7
- data.tar.gz: df2f66b6fb64f17492212dbdaa699a0d4147be5f2f4ea01ac911d36e7c26851b5d71c6c0b4d79431862363bf26f8cc57a6b0de7d9a6b7a411b936912c70d532d
6
+ metadata.gz: 7da9864a71d17f68ce58d957099918028d03b19a4bcc80961b4aa5397e14867db34c18f44a8a7ddb0dc5681f84b03b9547a0c59b49e98454cf58c9c7cafea731
7
+ data.tar.gz: 18330a6e213562aed882a7a31bec0d7b80607c3077375fa3fe62adf46d109debce732098ebe926d2fb843b7325116ac002009e210aa41412924c6adffc12ed90
@@ -5,8 +5,8 @@ require 'chronic_duration'
5
5
  # :include: README.txt
6
6
 
7
7
  module Minitest
8
- VERSION = '5.0.18' # :nodoc:
9
- DATE = '2013-08-13' # :nodoc:
8
+ VERSION = '5.0.19' # :nodoc:
9
+ DATE = '2013-08-19' # :nodoc:
10
10
 
11
11
  @@installed_at_exit ||= false
12
12
  @@after_run = []
@@ -148,8 +148,9 @@ module Minitest
148
148
  io = spec_opts.fetch(:io, $stdout)
149
149
  color = spec_opts.fetch(:color, "\e[32m") # ANSI.green default
150
150
  # target only existing readable files
151
- files_to_trace.each { |f| targets.push(f) if File.exists?(f) && File
152
- .readable?(f) }
151
+ files_to_trace.each do |f|
152
+ targets.push(File.expand_path(f)) if File.exists?(f) && File.readable?(f)
153
+ end
153
154
  return if targets.empty?
154
155
 
155
156
  set_trace_func(lambda do |event, file, line, id, binding, classname|
@@ -325,7 +326,9 @@ module Minitest
325
326
  class ExitAfterFirstFail < RuntimeError; end
326
327
 
327
328
  def self.check_failures result, reporter
328
- if !result.failures.empty?
329
+ # skip is not a failure.
330
+ true_fails = result.failures.reject { |obj| obj.class == Minitest::Skip }
331
+ if !true_fails.empty?
329
332
  begin
330
333
  reporter.reporters.each { |r| r.report }
331
334
  ensure
@@ -651,7 +654,7 @@ module Minitest
651
654
 
652
655
  io.sync = self.old_sync
653
656
 
654
- io.puts # finish the dots
657
+ io.puts unless options[:verbose] # finish the dots
655
658
  io.puts
656
659
  io.puts statistics
657
660
  io.puts aggregated_results
@@ -672,8 +675,13 @@ module Minitest
672
675
  end
673
676
 
674
677
  def summary # :nodoc:
675
- "%d runs, %d assertions, %d failures, %d errors, %d skips" %
676
- [count, assertions, failures, errors, skips]
678
+ extra = ""
679
+
680
+ extra = "\n\nYou have skipped tests. Run with --verbose for details." if
681
+ results.any?(&:skipped?) unless options[:verbose] or ENV["MT_NO_SKIP_MSG"]
682
+
683
+ "%d runs, %d assertions, %d failures, %d errors, %d skips%s" %
684
+ [count, assertions, failures, errors, skips, extra]
677
685
  end
678
686
  end
679
687
 
@@ -1,5 +1,18 @@
1
1
  ##
2
2
  # It's where you hide your "assertions".
3
+ #
4
+ # Please note, because of the way that expectations are implemented,
5
+ # all expectations (eg must_equal) are dependent upon a thread local
6
+ # variable +:current_spec+. If your specs rely on mixing threads into
7
+ # the specs themselves, you're better off using assertions. For
8
+ # example:
9
+ #
10
+ # it "should still work in threads" do
11
+ # my_threaded_thingy do
12
+ # (1+1).must_equal 2 # bad
13
+ # assert_equal 2, 1+1 # good
14
+ # end
15
+ # end
3
16
 
4
17
  module Minitest::Expectations
5
18
  ##
@@ -53,7 +53,8 @@ module Kernel # :nodoc:
53
53
  #
54
54
  # but do note that several items there are debatable or specific to
55
55
  # rspec.
56
-
56
+ #
57
+ # For more information about expectations, see Minitest::Expectations.
57
58
 
58
59
  def describe desc, additional_desc = nil, &block # :doc:
59
60
  stack = Minitest::Spec.describe_stack
@@ -289,4 +290,4 @@ require "minitest/expectations"
289
290
 
290
291
  class Object # :nodoc:
291
292
  include Minitest::Expectations unless ENV["MT_NO_EXPECTATIONS"]
292
- end
293
+ end
@@ -1,3 +1,10 @@
1
+ #### v5.0.18 2013-08-13
2
+
3
+ - [60c70b0](https://github.com/bootstraponline/spec/commit/60c70b0ef6005a515086467c1af3a9faedfb4da3) Release 5.0.18
4
+ - [c0ebada](https://github.com/bootstraponline/spec/commit/c0ebada0543fb3d11ceb441cf17da91566119c41) Invoke after_run on Ctrl + C
5
+ - [630edb2](https://github.com/bootstraponline/spec/commit/630edb2b45f3948ca0d465f29e1c198050fe0fb5) Fix exit
6
+
7
+
1
8
  #### v5.0.17 2013-08-12
2
9
 
3
10
  - [605696d](https://github.com/bootstraponline/spec/commit/605696d4952c9a8b9107e3a338c8713d6f979d18) Release 5.0.17
@@ -0,0 +1,15 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'stringio' # stdlib
5
+ require 'spec' # not 'minitest'
6
+
7
+ describe 'a' do
8
+ t('') { puts 1 }
9
+ t('') { skip }
10
+ t('') { puts 3 }
11
+ t('') { skip }
12
+ t('') { puts 5 }
13
+ end
14
+
15
+ Minitest.run_specs({ trace: [__FILE__], verbose: true })
@@ -66,7 +66,11 @@ class TestMinitestReporter < Minitest::Test
66
66
  def skip_test
67
67
  unless defined? @st then
68
68
  @st = Minitest::Test.new(:woot)
69
- @st.failures << Minitest::Skip.new
69
+ @st.failures << begin
70
+ raise Minitest::Skip
71
+ rescue Minitest::Assertion => e
72
+ e
73
+ end
70
74
  end
71
75
  @st
72
76
  end
@@ -81,16 +85,41 @@ class TestMinitestReporter < Minitest::Test
81
85
  refute r.passed?
82
86
  end
83
87
 
88
+ SKIP_MSG = "\n\nYou have skipped tests. Run with --verbose for details."
89
+
84
90
  def test_passed_eh_error
91
+ r.start
92
+
85
93
  r.results << error_test
86
94
 
87
95
  refute r.passed?
96
+
97
+ r.report
98
+
99
+ refute_match SKIP_MSG, io.string
88
100
  end
89
101
 
90
102
  def test_passed_eh_skipped
103
+ r.start
91
104
  r.results << skip_test
105
+ assert r.passed?
106
+
107
+ restore_env do
108
+ r.report
109
+ end
110
+
111
+ assert_match SKIP_MSG, io.string
112
+ end
92
113
 
114
+ def test_passed_eh_skipped_verbose
115
+ r.first.options[:verbose] = true
116
+
117
+ r.start
118
+ r.results << skip_test
93
119
  assert r.passed?
120
+ r.report
121
+
122
+ refute_match SKIP_MSG, io.string
94
123
  end
95
124
 
96
125
  def test_start
@@ -248,10 +277,23 @@ class TestMinitestReporter < Minitest::Test
248
277
  assert_equal exp, normalize_output(io.string)
249
278
  end
250
279
 
280
+ def restore_env
281
+ old_value = ENV["MT_NO_SKIP_MSG"]
282
+ ENV.delete "MT_NO_SKIP_MSG"
283
+
284
+ yield
285
+ ensure
286
+ ENV["MT_NO_SKIP_MSG"] = old_value
287
+ end
288
+
289
+
251
290
  def test_report_skipped
252
291
  r.start
253
292
  r.record skip_test
254
- r.report
293
+
294
+ restore_env do
295
+ r.report
296
+ end
255
297
 
256
298
  exp = clean <<-EOM
257
299
  Run options:
@@ -263,6 +305,8 @@ class TestMinitestReporter < Minitest::Test
263
305
  Finished in 0.00
264
306
 
265
307
  1 runs, 0 assertions, 0 failures, 0 errors, 1 skips
308
+
309
+ You have skipped tests. Run with --verbose for details.
266
310
  EOM
267
311
 
268
312
  assert_equal exp, normalize_output(io.string)
@@ -387,6 +387,8 @@ class TestMinitestRunner < MetaMetaMetaTestCase
387
387
  Finished in 0.00
388
388
 
389
389
  2 runs, 1 assertions, 0 failures, 0 errors, 1 skips
390
+
391
+ You have skipped tests. Run with --verbose for details.
390
392
  EOM
391
393
 
392
394
  assert_report expected
@@ -408,7 +410,6 @@ class TestMinitestRunner < MetaMetaMetaTestCase
408
410
  #<Class:0xXXX>#test_something = 0.00 s = .
409
411
  #<Class:0xXXX>#test_skip = 0.00 s = S
410
412
 
411
-
412
413
  Finished in 0.00
413
414
 
414
415
  1) Skipped:
@@ -416,7 +417,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
416
417
  not yet
417
418
 
418
419
  2 runs, 1 assertions, 0 failures, 0 errors, 1 skips
419
- EOM
420
+ EOM
420
421
 
421
422
  assert_report expected, %w[--seed 42 --verbose]
422
423
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spec
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.18
4
+ version: 5.0.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - code@bootstraponline.com
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-13 00:00:00.000000000 Z
11
+ date: 2013-08-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chronic_duration
@@ -103,6 +103,7 @@ files:
103
103
  - test/manual/setup.rb
104
104
  - test/manual/simple.rb
105
105
  - test/manual/simple2.rb
106
+ - test/manual/skip.rb
106
107
  - test/manual/t.rb
107
108
  - test/manual/trace.rb
108
109
  - test/manual/trace2.rb