dohtest 0.1.55 → 0.1.56
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.
- checksums.yaml +4 -4
- data/lib/dohtest/assertions.rb +13 -3
- data/lib/dohtest/capture_output.rb +11 -3
- data/lib/dohtest/stream_output.rb +13 -2
- data/test/support/group_runner_helper.rb +25 -0
- data/test/test_assertions.rb +239 -0
- data/test/test_group_runner.rb +39 -21
- data/test/test_master_runner.rb +20 -0
- metadata +7 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: feef508b9e97ca382ecec3b01e7cb0c3ff609ab1e0e010e1d7676b94220f4840
|
|
4
|
+
data.tar.gz: 4fadcdffa88dc7d3d958c1f7b73a38a8897c3cfc9427ac32bc12031f2cc00fa1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fe2f5fece8efb09b7fd77bbcf4169b992b22b73f66e876fba4763a23353763c1c291d08c9988e5852cd12710d48fe079e13f24f86e9a2995cac3941da0515d82
|
|
7
|
+
data.tar.gz: a36eaf21dbf9bc595fbf1a3eee95a77066d00dadc76bf5ecec20bb00ba8b81f8b809eb0a031e1f9df0d69044a90d59fd59ca0effe37edccbf43afb0ed16d5361
|
data/lib/dohtest/assertions.rb
CHANGED
|
@@ -19,20 +19,30 @@ class TestGroup
|
|
|
19
19
|
end
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
+
# expected arguments:
|
|
23
|
+
# one or more exception classes (or modules); a class matches only exactly, not a subclass
|
|
24
|
+
# then optionally a regex the exception's message must match
|
|
25
|
+
# then optionally a failure message to display if the assertion fails
|
|
22
26
|
def assert_raises(*expected)
|
|
23
27
|
msg = expected.pop if expected.last.is_a?(String)
|
|
28
|
+
message_regex = expected.pop if expected.last.is_a?(Regexp)
|
|
29
|
+
if expected.empty? || !expected.all? { |elem| elem.is_a?(Module) }
|
|
30
|
+
raise ArgumentError, "assert_raises takes exception classes, then an optional regex, then an optional failure message; got: #{expected.inspect}"
|
|
31
|
+
end
|
|
32
|
+
failure_expected = {:classes => expected, :message_regex => message_regex}
|
|
24
33
|
begin
|
|
25
34
|
yield
|
|
26
35
|
no_exception = true
|
|
27
36
|
rescue Exception => actual_excpt
|
|
28
37
|
actual_class = actual_excpt.class
|
|
29
|
-
|
|
38
|
+
class_matched = expected.any? { |elem| elem.instance_of?(Module) ? actual_excpt.kind_of?(elem) : elem == actual_class }
|
|
39
|
+
if class_matched && (message_regex.nil? || actual_excpt.message.match?(message_regex))
|
|
30
40
|
@runner.assertion_passed
|
|
31
41
|
else
|
|
32
|
-
raise DohTest::Failure.new(msg, :raises,
|
|
42
|
+
raise DohTest::Failure.new(msg, :raises, failure_expected, actual_excpt)
|
|
33
43
|
end
|
|
34
44
|
end
|
|
35
|
-
raise DohTest::Failure.new(msg, :raises,
|
|
45
|
+
raise DohTest::Failure.new(msg, :raises, failure_expected, nil) if no_exception
|
|
36
46
|
end
|
|
37
47
|
|
|
38
48
|
def assert_instance_of(expected_class, actual_object, msg = nil)
|
|
@@ -35,17 +35,25 @@ class CaptureOutput
|
|
|
35
35
|
add(:group_name => group_name, :test_name => test_name, :error => error, :seed => seed)
|
|
36
36
|
end
|
|
37
37
|
|
|
38
|
-
def assertion_failed(group_name, test_name, failure)
|
|
39
|
-
add(:group_name => group_name, :test_name => test_name, :failure => failure)
|
|
38
|
+
def assertion_failed(group_name, test_name, failure, seed)
|
|
39
|
+
add(:group_name => group_name, :test_name => test_name, :failure => failure, :seed => seed)
|
|
40
40
|
end
|
|
41
41
|
|
|
42
42
|
def assertion_passed(group_name, test_name)
|
|
43
43
|
add(:group_name => group_name, :test_name => test_name)
|
|
44
44
|
end
|
|
45
45
|
|
|
46
|
+
def callback_failed(proc_name)
|
|
47
|
+
add(:proc_name => proc_name)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def no_tests_found
|
|
51
|
+
add({})
|
|
52
|
+
end
|
|
53
|
+
|
|
46
54
|
private
|
|
47
55
|
def add(args)
|
|
48
|
-
args[:name] =
|
|
56
|
+
args[:name] = caller_locations(1, 1).first.base_label
|
|
49
57
|
@events.push(args)
|
|
50
58
|
end
|
|
51
59
|
end
|
|
@@ -168,14 +168,25 @@ private
|
|
|
168
168
|
end
|
|
169
169
|
|
|
170
170
|
def display_raises_failure(failure)
|
|
171
|
+
classes = failure.expected.fetch(:classes)
|
|
172
|
+
message_regex = failure.expected.fetch(:message_regex)
|
|
173
|
+
|
|
174
|
+
if classes.size == 1
|
|
175
|
+
expected_str = classes.first.to_s
|
|
176
|
+
else
|
|
177
|
+
expected_str = "one of #{classes.join(',')}"
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
if message_regex
|
|
181
|
+
expected_str += " with message matching #{message_regex.inspect}"
|
|
182
|
+
end
|
|
171
183
|
if failure.actual
|
|
172
|
-
expected_str = if (failure.expected.size == 1) then failure.expected.first else "one of #{failure.expected.join(',')}" end
|
|
173
184
|
@err_ios.puts colorize(:info, "expected: #{expected_str}; actual: #{failure.actual.class}: #{failure.actual.message}")
|
|
174
185
|
DohTest::BacktraceParser.new(failure.actual.backtrace).relevant_stack.each do |path, line|
|
|
175
186
|
@err_ios.puts "#{path}:#{line}"
|
|
176
187
|
end
|
|
177
188
|
else
|
|
178
|
-
@err_ios.puts colorize(:info, "expected: #{
|
|
189
|
+
@err_ios.puts colorize(:info, "expected: #{expected_str}, but no exception was raised")
|
|
179
190
|
end
|
|
180
191
|
end
|
|
181
192
|
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
require 'dohtest/group_runner'
|
|
2
|
+
require 'dohtest/capture_output'
|
|
3
|
+
|
|
4
|
+
module DohTest
|
|
5
|
+
|
|
6
|
+
# runs a test group with CaptureOutput, so a Minitest::Test can check the events it reports
|
|
7
|
+
module GroupRunnerHelper
|
|
8
|
+
def verify_event(expected_pairs, event)
|
|
9
|
+
expected_pairs.each_pair do |key, value|
|
|
10
|
+
assert_equal(value, event[key])
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def run_group(group_klass, config_overrides = {})
|
|
15
|
+
@group_klass = group_klass
|
|
16
|
+
@output = CaptureOutput.new
|
|
17
|
+
@runner = GroupRunner.new(@group_klass, @output, DohTest.config.merge(config_overrides))
|
|
18
|
+
@runner.run
|
|
19
|
+
@events = @output.events
|
|
20
|
+
assert_equal({:name => 'group_begin', :group_name => @group_klass.to_s}, @events.shift)
|
|
21
|
+
verify_event({:name => 'group_end', :group_name => @group_klass.to_s}, @events.last)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
require 'dohroot'; Doh.find_root_from_file
|
|
2
|
+
require 'minitest/autorun'
|
|
3
|
+
require 'dohtest/group_runner'
|
|
4
|
+
require 'dohtest/capture_output'
|
|
5
|
+
require File.join(Doh.root, 'test/support/group_runner_helper')
|
|
6
|
+
|
|
7
|
+
module DohTest
|
|
8
|
+
|
|
9
|
+
class TestAssertions < Minitest::Test
|
|
10
|
+
include GroupRunnerHelper
|
|
11
|
+
|
|
12
|
+
def verify_passed(group_klass)
|
|
13
|
+
run_group(group_klass)
|
|
14
|
+
assert_equal(4, @events.size)
|
|
15
|
+
assert_equal('test_begin', @events.shift[:name])
|
|
16
|
+
assert_equal('assertion_passed', @events.shift[:name])
|
|
17
|
+
assert_equal('test_end', @events.shift[:name])
|
|
18
|
+
verify_event({:tests_ran => 1, :tests_skipped => 0, :assertions_passed => 1, :assertions_failed => 0}, @events.shift)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def run_failed_group(group_klass)
|
|
22
|
+
run_group(group_klass)
|
|
23
|
+
assert_equal(4, @events.size)
|
|
24
|
+
assert_equal('test_begin', @events.shift[:name])
|
|
25
|
+
event = @events.shift
|
|
26
|
+
assert_equal('assertion_failed', event[:name])
|
|
27
|
+
assert_equal('test_end', @events.shift[:name])
|
|
28
|
+
verify_event({:tests_ran => 1, :tests_skipped => 0, :assertions_passed => 0, :assertions_failed => 1}, @events.shift)
|
|
29
|
+
assert_equal(:raises, event[:failure].assert)
|
|
30
|
+
return event[:failure]
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def verify_argument_error(group_klass)
|
|
34
|
+
run_group(group_klass)
|
|
35
|
+
assert_equal(4, @events.size)
|
|
36
|
+
assert_equal('test_begin', @events.shift[:name])
|
|
37
|
+
event = @events.shift
|
|
38
|
+
assert_equal('test_error', event[:name])
|
|
39
|
+
assert_equal(ArgumentError, event[:error].class)
|
|
40
|
+
assert_equal('test_end', @events.shift[:name])
|
|
41
|
+
verify_event({:tests_ran => 1, :tests_skipped => 0, :assertions_passed => 0, :assertions_failed => 0}, @events.shift)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
class RaisesClass < DohTest::TestGroup
|
|
45
|
+
def test_raises
|
|
46
|
+
assert_raises(ArgumentError) { raise ArgumentError }
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def test_raises_class
|
|
51
|
+
verify_passed(RaisesClass)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
class RaisesOneOfSeveralClasses < DohTest::TestGroup
|
|
55
|
+
def test_raises
|
|
56
|
+
assert_raises(TypeError, ArgumentError) { raise ArgumentError }
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def test_raises_one_of_several_classes
|
|
61
|
+
verify_passed(RaisesOneOfSeveralClasses)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
module TaggedError; end
|
|
65
|
+
class TaggedRuntimeError < RuntimeError
|
|
66
|
+
include TaggedError
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
class RaisesModule < DohTest::TestGroup
|
|
70
|
+
def test_raises
|
|
71
|
+
assert_raises(TaggedError) { raise TaggedRuntimeError }
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def test_raises_module
|
|
76
|
+
verify_passed(RaisesModule)
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
class RaisesWrongClass < DohTest::TestGroup
|
|
80
|
+
def test_raises
|
|
81
|
+
assert_raises(TypeError) { raise ArgumentError }
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def test_raises_wrong_class
|
|
86
|
+
failure = run_failed_group(RaisesWrongClass)
|
|
87
|
+
assert_equal(ArgumentError, failure.actual.class)
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
class RaisesSubclass < DohTest::TestGroup
|
|
91
|
+
def test_raises
|
|
92
|
+
assert_raises(StandardError) { raise ArgumentError }
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def test_raises_subclass
|
|
97
|
+
failure = run_failed_group(RaisesSubclass)
|
|
98
|
+
assert_equal(ArgumentError, failure.actual.class)
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
class RaisesNothing < DohTest::TestGroup
|
|
102
|
+
def test_raises
|
|
103
|
+
assert_raises(ArgumentError) { nil }
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def test_raises_nothing
|
|
108
|
+
failure = run_failed_group(RaisesNothing)
|
|
109
|
+
assert_nil(failure.actual)
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
class RaisesMatchingMessage < DohTest::TestGroup
|
|
113
|
+
def test_raises
|
|
114
|
+
assert_raises(ArgumentError, /abc/) { raise ArgumentError, 'xx abc xx' }
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def test_raises_matching_message
|
|
119
|
+
verify_passed(RaisesMatchingMessage)
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
class RaisesNonMatchingMessage < DohTest::TestGroup
|
|
123
|
+
def test_raises
|
|
124
|
+
assert_raises(ArgumentError, /abc/) { raise ArgumentError, 'xyz' }
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
def test_raises_non_matching_message
|
|
129
|
+
failure = run_failed_group(RaisesNonMatchingMessage)
|
|
130
|
+
assert_equal('xyz', failure.actual.message)
|
|
131
|
+
assert_equal({:classes => [ArgumentError], :message_regex => /abc/}, failure.expected)
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
class RaisesMatchingMessageWrongClass < DohTest::TestGroup
|
|
135
|
+
def test_raises
|
|
136
|
+
assert_raises(TypeError, /abc/) { raise ArgumentError, 'abc' }
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
def test_raises_matching_message_wrong_class
|
|
141
|
+
failure = run_failed_group(RaisesMatchingMessageWrongClass)
|
|
142
|
+
assert_equal(ArgumentError, failure.actual.class)
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
class RaisesNothingWithRegex < DohTest::TestGroup
|
|
146
|
+
def test_raises
|
|
147
|
+
assert_raises(ArgumentError, /abc/) { nil }
|
|
148
|
+
end
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
def test_raises_nothing_with_regex
|
|
152
|
+
failure = run_failed_group(RaisesNothingWithRegex)
|
|
153
|
+
assert_nil(failure.actual)
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
class RaisesWithFailureMessage < DohTest::TestGroup
|
|
157
|
+
def test_raises
|
|
158
|
+
assert_raises(TypeError, 'custom message') { raise ArgumentError }
|
|
159
|
+
end
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
def test_raises_with_failure_message
|
|
163
|
+
failure = run_failed_group(RaisesWithFailureMessage)
|
|
164
|
+
assert_equal('custom message', failure.message)
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
class RaisesWithRegexAndFailureMessage < DohTest::TestGroup
|
|
168
|
+
def test_raises
|
|
169
|
+
assert_raises(ArgumentError, /abc/, 'custom message') { raise ArgumentError, 'xyz' }
|
|
170
|
+
end
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
def test_raises_with_regex_and_failure_message
|
|
174
|
+
failure = run_failed_group(RaisesWithRegexAndFailureMessage)
|
|
175
|
+
assert_equal('custom message', failure.message)
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
class RaisesNoArguments < DohTest::TestGroup
|
|
179
|
+
def test_raises
|
|
180
|
+
assert_raises { nil }
|
|
181
|
+
end
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
def test_raises_no_arguments
|
|
185
|
+
verify_argument_error(RaisesNoArguments)
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
class RaisesOnlyRegex < DohTest::TestGroup
|
|
189
|
+
def test_raises
|
|
190
|
+
assert_raises(/abc/) { nil }
|
|
191
|
+
end
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
def test_raises_only_regex
|
|
195
|
+
verify_argument_error(RaisesOnlyRegex)
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
class RaisesOnlyFailureMessage < DohTest::TestGroup
|
|
199
|
+
def test_raises
|
|
200
|
+
assert_raises('custom message') { nil }
|
|
201
|
+
end
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
def test_raises_only_failure_message
|
|
205
|
+
verify_argument_error(RaisesOnlyFailureMessage)
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
class RaisesRegexBeforeClass < DohTest::TestGroup
|
|
209
|
+
def test_raises
|
|
210
|
+
assert_raises(/abc/, ArgumentError) { nil }
|
|
211
|
+
end
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
def test_raises_regex_before_class
|
|
215
|
+
verify_argument_error(RaisesRegexBeforeClass)
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
class RaisesRegexAfterFailureMessage < DohTest::TestGroup
|
|
219
|
+
def test_raises
|
|
220
|
+
assert_raises(ArgumentError, 'custom message', /abc/) { nil }
|
|
221
|
+
end
|
|
222
|
+
end
|
|
223
|
+
|
|
224
|
+
def test_raises_regex_after_failure_message
|
|
225
|
+
verify_argument_error(RaisesRegexAfterFailureMessage)
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
class RaisesNonClassArgument < DohTest::TestGroup
|
|
229
|
+
def test_raises
|
|
230
|
+
assert_raises(ArgumentError, 5) { nil }
|
|
231
|
+
end
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
def test_raises_non_class_argument
|
|
235
|
+
verify_argument_error(RaisesNonClassArgument)
|
|
236
|
+
end
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
end
|
data/test/test_group_runner.rb
CHANGED
|
@@ -2,27 +2,12 @@ require 'dohroot'; Doh.find_root_from_file
|
|
|
2
2
|
require 'minitest/autorun'
|
|
3
3
|
require 'dohtest/group_runner'
|
|
4
4
|
require 'dohtest/capture_output'
|
|
5
|
+
require File.join(Doh.root, 'test/support/group_runner_helper')
|
|
5
6
|
|
|
6
7
|
module DohTest
|
|
7
8
|
|
|
8
9
|
class TestGroupRunner < Minitest::Test
|
|
9
|
-
|
|
10
|
-
expected_pairs.each_pair do |key, value|
|
|
11
|
-
assert_equal(value, event[key])
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def run_group(group_klass, grepstr = nil)
|
|
16
|
-
@group_klass = group_klass
|
|
17
|
-
@output = CaptureOutput.new
|
|
18
|
-
config = if grepstr then DohTest.config.merge({:grep => grepstr}) else nil end
|
|
19
|
-
@runner = GroupRunner.new(@group_klass, @output, config)
|
|
20
|
-
@runner.run
|
|
21
|
-
@events = @output.events
|
|
22
|
-
assert_equal({:name => 'group_begin', :group_name => @group_klass.to_s}, @events.shift)
|
|
23
|
-
verify_event({:name => 'group_end', :group_name => @group_klass.to_s}, @events.last)
|
|
24
|
-
end
|
|
25
|
-
|
|
10
|
+
include GroupRunnerHelper
|
|
26
11
|
|
|
27
12
|
class EmptyTestGroup < DohTest::TestGroup; end
|
|
28
13
|
def test_empty_group
|
|
@@ -120,6 +105,39 @@ class TestGroupRunner < Minitest::Test
|
|
|
120
105
|
assert(@group_klass.class_variable_get(:@@ran_after))
|
|
121
106
|
end
|
|
122
107
|
|
|
108
|
+
class AssertionFailureGroup < DohTest::TestGroup
|
|
109
|
+
def test_failed_assertion
|
|
110
|
+
assert_equal(1, 2)
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def test_assertion_failure
|
|
115
|
+
run_group(AssertionFailureGroup)
|
|
116
|
+
assert_equal(4, @events.size)
|
|
117
|
+
assert_equal('test_begin', @events.shift[:name])
|
|
118
|
+
event = @events.shift
|
|
119
|
+
assert_equal('assertion_failed', event[:name])
|
|
120
|
+
assert_equal(:equal, event[:failure].assert)
|
|
121
|
+
assert_equal('test_end', @events.shift[:name])
|
|
122
|
+
verify_event({:tests_ran => 1, :tests_skipped => 0, :assertions_passed => 0, :assertions_failed => 1}, @events.shift)
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
class CallbackFailureGroup < DohTest::TestGroup
|
|
126
|
+
def test_pass
|
|
127
|
+
assert(true)
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
def test_callback_failure
|
|
132
|
+
run_group(CallbackFailureGroup, :pre_group_callback => [proc { false }])
|
|
133
|
+
assert_equal(5, @events.size)
|
|
134
|
+
assert_equal('callback_failed', @events.shift[:name])
|
|
135
|
+
assert_equal('test_begin', @events.shift[:name])
|
|
136
|
+
assert_equal('assertion_passed', @events.shift[:name])
|
|
137
|
+
assert_equal('test_end', @events.shift[:name])
|
|
138
|
+
verify_event({:tests_ran => 1, :tests_skipped => 0, :assertions_passed => 1, :assertions_failed => 0}, @events.shift)
|
|
139
|
+
end
|
|
140
|
+
|
|
123
141
|
class GreppingWithPass < DohTest::TestGroup
|
|
124
142
|
def test_blah
|
|
125
143
|
assert(true)
|
|
@@ -146,22 +164,22 @@ class TestGroupRunner < Minitest::Test
|
|
|
146
164
|
end
|
|
147
165
|
|
|
148
166
|
def test_grepping_with_pass_grep_blah
|
|
149
|
-
run_group(GreppingWithPass, 'blah')
|
|
167
|
+
run_group(GreppingWithPass, :grep => 'blah')
|
|
150
168
|
verify_event({:tests_ran => 4, :tests_skipped => 1, :assertions_passed => 13, :assertions_failed => 0}, @events.last)
|
|
151
169
|
end
|
|
152
170
|
|
|
153
171
|
def test_grepping_with_pass_grep_blee
|
|
154
|
-
run_group(GreppingWithPass, 'blee')
|
|
172
|
+
run_group(GreppingWithPass, :grep => 'blee')
|
|
155
173
|
verify_event({:tests_ran => 2, :tests_skipped => 3, :assertions_passed => 6, :assertions_failed => 0}, @events.last)
|
|
156
174
|
end
|
|
157
175
|
|
|
158
176
|
def test_grepping_with_pass_grep_bloo
|
|
159
|
-
run_group(GreppingWithPass, 'bloo')
|
|
177
|
+
run_group(GreppingWithPass, :grep => 'bloo')
|
|
160
178
|
verify_event({:tests_ran => 1, :tests_skipped => 4, :assertions_passed => 5, :assertions_failed => 0}, @events.last)
|
|
161
179
|
end
|
|
162
180
|
|
|
163
181
|
def test_grepping_with_pass_grep_zzz
|
|
164
|
-
run_group(GreppingWithPass, 'zzz')
|
|
182
|
+
run_group(GreppingWithPass, :grep => 'zzz')
|
|
165
183
|
verify_event({:tests_ran => 0, :tests_skipped => 5, :assertions_passed => 0, :assertions_failed => 0}, @events.last)
|
|
166
184
|
end
|
|
167
185
|
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require 'dohroot'; Doh.find_root_from_file
|
|
2
|
+
require 'minitest/autorun'
|
|
3
|
+
require 'dohtest/master_runner'
|
|
4
|
+
require 'dohtest/capture_output'
|
|
5
|
+
|
|
6
|
+
module DohTest
|
|
7
|
+
|
|
8
|
+
class TestMasterRunner < Minitest::Test
|
|
9
|
+
def test_no_tests_found
|
|
10
|
+
output = CaptureOutput.new
|
|
11
|
+
runner = MasterRunner.new(output, DohTest.config.merge(:test_files => [], :seed => 1))
|
|
12
|
+
assert_equal(1, runner.run)
|
|
13
|
+
events = output.events
|
|
14
|
+
assert_equal(2, events.size)
|
|
15
|
+
assert_equal('run_begin', events.shift[:name])
|
|
16
|
+
assert_equal('no_tests_found', events.shift[:name])
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dohtest
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.56
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- ATPSoft
|
|
@@ -62,9 +62,12 @@ files:
|
|
|
62
62
|
- lib/dohtest/master_runner.rb
|
|
63
63
|
- lib/dohtest/stream_output.rb
|
|
64
64
|
- lib/dohtest/test_group.rb
|
|
65
|
+
- test/support/group_runner_helper.rb
|
|
66
|
+
- test/test_assertions.rb
|
|
65
67
|
- test/test_backtrace_parser.rb
|
|
66
68
|
- test/test_exit_codes.rb
|
|
67
69
|
- test/test_group_runner.rb
|
|
70
|
+
- test/test_master_runner.rb
|
|
68
71
|
homepage: https://github.com/atpsoft/dohtest
|
|
69
72
|
licenses:
|
|
70
73
|
- MIT
|
|
@@ -87,6 +90,9 @@ rubygems_version: 4.0.17
|
|
|
87
90
|
specification_version: 4
|
|
88
91
|
summary: minimalist unit test framework
|
|
89
92
|
test_files:
|
|
93
|
+
- test/support/group_runner_helper.rb
|
|
94
|
+
- test/test_assertions.rb
|
|
90
95
|
- test/test_backtrace_parser.rb
|
|
91
96
|
- test/test_exit_codes.rb
|
|
92
97
|
- test/test_group_runner.rb
|
|
98
|
+
- test/test_master_runner.rb
|