test-unit 3.1.7 → 3.1.8

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: e8c936b362c725433ebd125ef69157917ea0fda1
4
- data.tar.gz: 025132e2049808eefb3ce43a81de19122fa7f93a
3
+ metadata.gz: 5844bfd9d0754f090d6234c91739e29922476a05
4
+ data.tar.gz: 8b1eeab14fe29d9451f73a456792d47079cbca41
5
5
  SHA512:
6
- metadata.gz: 8344b2553f2e81b8c645f652be329e9f0ccf18b6d738d5407d378c86a670c1b22371ff32294bf1bcc4851dcb1c6e53668827cefe62d26319114b3b7df2da5631
7
- data.tar.gz: 193991a49ed67e3b18605e23d0a051a51c6b2ed6604c5897cb37ac93c3396791543f272689e525a1e4cdf0b1c76fb553261cd6eee34b80fdb1bbbc894f8092db
6
+ metadata.gz: 85cd16c83e1572e93970165b9e0d6b8845d366a381b6c7e424d63750dbe6d48029e1ed409e6e9bbca54bee29edbe1c28ac9c2f31b4534283b89adb549351d356
7
+ data.tar.gz: 023ef74d97b7f612dfb927d99763ccaaf82c3758e17a9806a345f87878186db6f59c0a9fd4a17b1b0a1f89a6c635fed32be98c82e7bae7f1152e25d84878931a
@@ -1,5 +1,13 @@
1
1
  # News
2
2
 
3
+ ## 3.1.8 - 2016-03-19 {#version-3-1-8}
4
+
5
+ ### Improvements
6
+
7
+ * Added `--stop-on-failure` command line option. With this option,
8
+ running test suite is stopped immediately when one test is failed
9
+ or an error is raised in one test.
10
+
3
11
  ## 3.1.7 - 2016-01-17 {#version-3-1-7}
4
12
 
5
13
  ### Fixes
@@ -635,7 +635,6 @@ EOT
635
635
  raise
636
636
  end
637
637
  end
638
- nil
639
638
  end
640
639
  end
641
640
 
@@ -139,6 +139,7 @@ module Test
139
139
  attr_accessor :default_test_paths
140
140
  attr_accessor :pattern, :exclude, :base, :workdir
141
141
  attr_accessor :color_scheme, :listeners
142
+ attr_writer :stop_on_failuere
142
143
  attr_writer :runner, :collector
143
144
 
144
145
  def initialize(standalone)
@@ -153,6 +154,7 @@ module Test
153
154
  @default_arguments = []
154
155
  @workdir = nil
155
156
  @listeners = []
157
+ @stop_on_failure = false
156
158
  config_file = "test-unit.yml"
157
159
  if File.exist?(config_file)
158
160
  load_config(config_file)
@@ -162,6 +164,10 @@ module Test
162
164
  yield(self) if block_given?
163
165
  end
164
166
 
167
+ def stop_on_failure?
168
+ @stop_on_failure
169
+ end
170
+
165
171
  def prepare
166
172
  PREPARE_HOOKS.each do |handler|
167
173
  handler.call(self)
@@ -361,6 +367,12 @@ module Test
361
367
  assertion_message_class.max_diff_target_string_size = size
362
368
  end
363
369
 
370
+ o.on("--[no-]stop-on-failure",
371
+ "Stops immediately on the first non success test",
372
+ "(#{@stop_on_failure})") do |boolean|
373
+ @stop_on_failure = boolean
374
+ end
375
+
364
376
  ADDITIONAL_OPTIONS.each do |option_builder|
365
377
  option_builder.call(self, o)
366
378
  end
@@ -419,6 +431,9 @@ module Test
419
431
  @runner_options[:color_scheme] ||= @color_scheme
420
432
  @runner_options[:listeners] ||= []
421
433
  @runner_options[:listeners].concat(@listeners)
434
+ if @stop_on_failure
435
+ @runner_options[:listeners] << StopOnFailureListener.new
436
+ end
422
437
  change_work_directory do
423
438
  runner.run(suite, @runner_options).passed?
424
439
  end
@@ -504,6 +519,14 @@ module Test
504
519
  :method_name => test.method_name)
505
520
  end
506
521
  end
522
+
523
+ class StopOnFailureListener
524
+ def attach_to_mediator(mediator)
525
+ mediator.add_listener(TestResult::FINISHED) do |result|
526
+ result.stop unless result.passed?
527
+ end
528
+ end
529
+ end
507
530
  end
508
531
  end
509
532
  end
@@ -38,12 +38,15 @@ module Test
38
38
 
39
39
  attr_reader :run_count, :pass_count, :assertion_count, :faults
40
40
 
41
+ attr_accessor :stop_tag
42
+
41
43
  # Constructs a new, empty TestResult.
42
44
  def initialize
43
45
  @run_count, @pass_count, @assertion_count = 0, 0, 0
44
46
  @summary_generators = []
45
47
  @problem_checkers = []
46
48
  @faults = []
49
+ @stop_tag = nil
47
50
  initialize_containers
48
51
  end
49
52
 
@@ -92,6 +95,10 @@ module Test
92
95
  end
93
96
  end
94
97
 
98
+ def stop
99
+ throw @stop_tag
100
+ end
101
+
95
102
  def to_s
96
103
  summary
97
104
  end
@@ -4,7 +4,6 @@
4
4
  # Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved.
5
5
  # License:: Ruby license.
6
6
 
7
- require 'test/unit'
8
7
  require 'test/unit/util/observable'
9
8
  require 'test/unit/testresult'
10
9
 
@@ -18,9 +17,9 @@ module Test
18
17
  RESET = name + "::RESET"
19
18
  STARTED = name + "::STARTED"
20
19
  FINISHED = name + "::FINISHED"
21
-
20
+
22
21
  include Util::Observable
23
-
22
+
24
23
  # Creates a new TestRunnerMediator initialized to run
25
24
  # the passed suite.
26
25
  def initialize(suite)
@@ -37,11 +36,14 @@ module Test
37
36
  Test::Unit.run_at_start_hooks
38
37
  start_time = Time.now
39
38
  begin
40
- with_listener(result) do
41
- notify_listeners(RESET, @suite.size)
42
- notify_listeners(STARTED, result)
39
+ catch do |stop_tag|
40
+ result.stop_tag = stop_tag
41
+ with_listener(result) do
42
+ notify_listeners(RESET, @suite.size)
43
+ notify_listeners(STARTED, result)
43
44
 
44
- run_suite(result)
45
+ run_suite(result)
46
+ end
45
47
  end
46
48
  ensure
47
49
  elapsed_time = Time.now - start_time
@@ -1,5 +1,5 @@
1
1
  module Test
2
2
  module Unit
3
- VERSION = '3.1.7'
3
+ VERSION = '3.1.8'
4
4
  end
5
5
  end
@@ -68,7 +68,10 @@ module Test
68
68
  "Incorrect expected message type in assert_nothing_failed")
69
69
  end
70
70
  else
71
- if return_value_expected
71
+ case return_value_expected
72
+ when :dont_care
73
+ # do nothing
74
+ when true
72
75
  check(!return_value.nil?, "Should return a value")
73
76
  else
74
77
  check(return_value.nil?,
@@ -812,22 +815,22 @@ EOM
812
815
  end
813
816
 
814
817
  def test_assert_nothing_raised
815
- check_nothing_fails {
818
+ check_nothing_fails(:dont_care) {
816
819
  assert_nothing_raised {
817
820
  1 + 1
818
821
  }
819
822
  }
820
- check_nothing_fails {
823
+ check_nothing_fails(:dont_care) {
821
824
  assert_nothing_raised("successful assert_nothing_raised") {
822
825
  1 + 1
823
826
  }
824
827
  }
825
- check_nothing_fails {
828
+ check_nothing_fails(:dont_care) {
826
829
  assert_nothing_raised("successful assert_nothing_raised") {
827
830
  1 + 1
828
831
  }
829
832
  }
830
- check_nothing_fails {
833
+ check_nothing_fails(:dont_care) {
831
834
  begin
832
835
  assert_nothing_raised(RuntimeError, StandardError, Comparable, "successful assert_nothing_raised") {
833
836
  raise ZeroDivisionError.new("ArgumentError")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test-unit
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.7
4
+ version: 3.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kouhei Sutou
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-01-17 00:00:00.000000000 Z
12
+ date: 2016-03-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: power_assert
@@ -229,7 +229,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
229
229
  version: '0'
230
230
  requirements: []
231
231
  rubyforge_project:
232
- rubygems_version: 2.4.5.1
232
+ rubygems_version: 2.5.1
233
233
  signing_key:
234
234
  specification_version: 4
235
235
  summary: An xUnit family unit testing framework for Ruby.