minitest 2.10.1 → 2.11.0

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.tar.gz.sig CHANGED
Binary file
@@ -1,3 +1,10 @@
1
+ === 2.11.0 / 2012-01-25
2
+
3
+ * 2 minor enhancements:
4
+
5
+ * Added before / after hooks for setup and teardown. (tenderlove)
6
+ * Pushed run_setup_hooks down to Spec. (tenderlove)
7
+
1
8
  === 2.10.1 / 2012-01-17
2
9
 
3
10
  * 1 bug fix:
@@ -238,6 +238,14 @@ class MiniTest::Spec < MiniTest::Unit::TestCase
238
238
  end
239
239
 
240
240
  # :stopdoc:
241
+ def after_setup
242
+ run_setup_hooks
243
+ end
244
+
245
+ def before_teardown
246
+ run_teardown_hooks
247
+ end
248
+
241
249
  class << self
242
250
  attr_reader :desc
243
251
  alias :specify :it
@@ -643,7 +643,7 @@ module MiniTest
643
643
  end
644
644
 
645
645
  class Unit # :nodoc:
646
- VERSION = "2.10.1" # :nodoc:
646
+ VERSION = "2.11.0" # :nodoc:
647
647
 
648
648
  attr_accessor :report, :failures, :errors, :skips # :nodoc:
649
649
  attr_accessor :test_count, :assertion_count # :nodoc:
@@ -1031,8 +1031,9 @@ module MiniTest
1031
1031
  result = ""
1032
1032
  begin
1033
1033
  @passed = nil
1034
+ self.before_setup
1034
1035
  self.setup
1035
- self.run_setup_hooks
1036
+ self.after_setup
1036
1037
  self.run_test self.__name__
1037
1038
  result = "." unless io?
1038
1039
  @passed = true
@@ -1042,13 +1043,14 @@ module MiniTest
1042
1043
  @passed = false
1043
1044
  result = runner.puke self.class, self.__name__, e
1044
1045
  ensure
1045
- begin
1046
- self.run_teardown_hooks
1047
- self.teardown
1048
- rescue *PASSTHROUGH_EXCEPTIONS
1049
- raise
1050
- rescue Exception => e
1051
- result = runner.puke self.class, self.__name__, e
1046
+ %w{ before_teardown teardown after_teardown }.each do |hook|
1047
+ begin
1048
+ self.send hook
1049
+ rescue *PASSTHROUGH_EXCEPTIONS
1050
+ raise
1051
+ rescue Exception => e
1052
+ result = runner.puke self.class, self.__name__, e
1053
+ end
1052
1054
  end
1053
1055
  trap 'INFO', 'DEFAULT' if SUPPORTS_INFO_SIGNAL
1054
1056
  end
@@ -1140,11 +1142,33 @@ module MiniTest
1140
1142
 
1141
1143
  def setup; end
1142
1144
 
1145
+ ##
1146
+ # Runs before every test after setup. Use this to refactor test
1147
+ # initialization.
1148
+
1149
+ def after_setup; end
1150
+
1151
+ ##
1152
+ # Runs before every setup. Use this to refactor test initialization.
1153
+
1154
+ def before_setup; end
1155
+
1143
1156
  ##
1144
1157
  # Runs after every test. Use this to refactor test cleanup.
1145
1158
 
1146
1159
  def teardown; end
1147
1160
 
1161
+ ##
1162
+ # Runs after every test before teardown. Use this to refactor test
1163
+ # initialization.
1164
+
1165
+ def before_teardown; end
1166
+
1167
+ ##
1168
+ # Runs after every teardown. Use this to refactor test cleanup.
1169
+
1170
+ def after_teardown; end
1171
+
1148
1172
  def self.reset_setup_teardown_hooks # :nodoc:
1149
1173
  @setup_hooks = []
1150
1174
  @teardown_hooks = []
@@ -469,10 +469,82 @@ Finished tests in 0.00
469
469
  end
470
470
  end
471
471
 
472
+ def test_before_setup
473
+ call_order = []
474
+ Class.new(MiniTest::Unit::TestCase) do
475
+ define_method :setup do
476
+ super()
477
+ call_order << :setup
478
+ end
479
+
480
+ define_method :before_setup do
481
+ call_order << :before_setup
482
+ end
483
+
484
+ def test_omg; assert true; end
485
+ end
486
+
487
+ @tu.run %w[--seed 42]
488
+
489
+ expected = [:before_setup, :setup]
490
+ assert_equal expected, call_order
491
+ end
492
+
493
+ def test_after_teardown
494
+ call_order = []
495
+ Class.new(MiniTest::Unit::TestCase) do
496
+ define_method :teardown do
497
+ super()
498
+ call_order << :teardown
499
+ end
500
+
501
+ define_method :after_teardown do
502
+ call_order << :after_teardown
503
+ end
504
+
505
+ def test_omg; assert true; end
506
+ end
507
+
508
+ @tu.run %w[--seed 42]
509
+
510
+ expected = [:teardown, :after_teardown]
511
+ assert_equal expected, call_order
512
+ end
513
+
514
+ def test_all_teardowns_are_guaranteed_to_run
515
+ call_order = []
516
+ Class.new(MiniTest::Unit::TestCase) do
517
+ define_method :after_teardown do
518
+ super()
519
+ call_order << :after_teardown
520
+ raise
521
+ end
522
+
523
+ define_method :teardown do
524
+ super()
525
+ call_order << :teardown
526
+ raise
527
+ end
528
+
529
+ define_method :before_teardown do
530
+ super()
531
+ call_order << :before_teardown
532
+ raise
533
+ end
534
+
535
+ def test_omg; assert true; end
536
+ end
537
+
538
+ @tu.run %w[--seed 42]
539
+
540
+ expected = [:before_teardown, :teardown, :after_teardown]
541
+ assert_equal expected, call_order
542
+ end
543
+
472
544
  def test_setup_hooks
473
545
  call_order = []
474
546
 
475
- tc = Class.new(MiniTest::Unit::TestCase) do
547
+ tc = Class.new(MiniTest::Spec) do
476
548
  define_method :setup do
477
549
  super()
478
550
  call_order << :method
@@ -509,7 +581,7 @@ Finished tests in 0.00
509
581
  def test_teardown_hooks
510
582
  call_order = []
511
583
 
512
- tc = Class.new(MiniTest::Unit::TestCase) do
584
+ tc = Class.new(MiniTest::Spec) do
513
585
  define_method :teardown do
514
586
  super()
515
587
  call_order << :method
@@ -546,7 +618,7 @@ Finished tests in 0.00
546
618
  def test_setup_and_teardown_hooks_survive_inheritance
547
619
  call_order = []
548
620
 
549
- parent = Class.new(MiniTest::Unit::TestCase) do
621
+ parent = Class.new(MiniTest::Spec) do
550
622
  define_method :setup do
551
623
  super()
552
624
  call_order << :setup_method
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitest
3
3
  version: !ruby/object:Gem::Version
4
- hash: 37
4
+ hash: 35
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
- - 10
9
- - 1
10
- version: 2.10.1
8
+ - 11
9
+ - 0
10
+ version: 2.11.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ryan Davis
@@ -36,7 +36,7 @@ cert_chain:
36
36
  FBHgymkyj/AOSqKRIpXPhjC6
37
37
  -----END CERTIFICATE-----
38
38
 
39
- date: 2012-01-18 00:00:00 Z
39
+ date: 2012-01-25 00:00:00 Z
40
40
  dependencies:
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rdoc
metadata.gz.sig CHANGED
Binary file