minitest 2.10.1 → 2.11.0

Sign up to get free protection for your applications and to get access to all the features.
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