m 1.4.0 → 1.6.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.
- checksums.yaml +5 -5
- data/.travis.yml +15 -8
- data/Appraisals +2 -2
- data/Gemfile.lock +38 -51
- data/README.md +44 -27
- data/gemfiles/minitest4.gemfile +5 -3
- data/gemfiles/minitest4.gemfile.lock +39 -51
- data/gemfiles/minitest5.gemfile +5 -3
- data/gemfiles/minitest5.gemfile.lock +44 -46
- data/gemfiles/test_unit_gem.gemfile +4 -2
- data/gemfiles/test_unit_gem.gemfile.lock +44 -53
- data/lib/error_tests/error_test.rb +7 -0
- data/lib/m/executor.rb +3 -3
- data/lib/m/frameworks.rb +6 -2
- data/lib/m/parser.rb +29 -6
- data/lib/m/test_collection.rb +5 -6
- data/lib/m/test_method.rb +3 -1
- data/lib/m/testable.rb +8 -6
- data/lib/m/version.rb +3 -0
- data/lib/m.rb +1 -1
- data/test/active_support_test.rb +17 -17
- data/test/everything_test.rb +4 -4
- data/test/examples/active_support_example_test.rb +1 -0
- data/test/examples/active_support_unescaped_example_test.rb +1 -0
- data/test/examples/minitest_example_test.rb +36 -0
- data/test/examples/multiple_example_test.rb +1 -0
- data/test/examples/subdir/another_subdir/d_test.rb +7 -0
- data/test/examples/subdir/another_subdir/yet_another_subdir/e_test.rb +7 -0
- data/test/exit_codes_test.rb +33 -0
- data/test/multiple_test.rb +3 -3
- data/test/options_test.rb +38 -6
- data/test/test_helper.rb +5 -0
- metadata +16 -8
- data/lib/version.rb +0 -3
@@ -0,0 +1,33 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class ExitCodesTest < MTest
|
4
|
+
def test_failing_test_returns_1
|
5
|
+
m("examples/subdir_with_failures/a_test")
|
6
|
+
refute $?.success?, "expected exit code to be 1 but it was #{$?.exitstatus}"
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_test_with_error_returns_1
|
10
|
+
m("../lib/error_tests/error_test")
|
11
|
+
refute $?.success?, "expected exit code to be 1 but it was #{$?.exitstatus}"
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_dir_with_failure_returns_1
|
15
|
+
m("examples/subdir_with_failures")
|
16
|
+
refute $?.success?, "expected exit code to be 1 but it was #{$?.exitstatus}"
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_dir_with_error_returns_1
|
20
|
+
m("../lib/error_tests")
|
21
|
+
refute $?.success?, "expected exit code to be 1 but it was #{$?.exitstatus}"
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_without_errors_or_failures_returns_0
|
25
|
+
m("examples/subdir/a_test")
|
26
|
+
assert $?.success?, "expected exit code to be 0 but it was #{$?.exitstatus}"
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_dir_without_errors_or_failures_returns_0
|
30
|
+
m("examples/subdir")
|
31
|
+
assert $?.success?, "expected exit code to be 0 but it was #{$?.exitstatus}"
|
32
|
+
end
|
33
|
+
end
|
data/test/multiple_test.rb
CHANGED
@@ -3,16 +3,16 @@ require 'test_helper'
|
|
3
3
|
class MultipleTest < MTest
|
4
4
|
def test_run_simple_test_by_line_number
|
5
5
|
output = m('examples/multiple_example_test.rb:11')
|
6
|
-
assert_output(/1 tests, 1 assertions/, output)
|
6
|
+
assert_output(/1 (runs|tests), 1 assertions/, output)
|
7
7
|
end
|
8
8
|
|
9
9
|
def test_runs_entire_test_without_line_number
|
10
10
|
output = m('examples/multiple_example_test.rb')
|
11
|
-
assert_output(/4 tests/, output)
|
11
|
+
assert_output(/4 (runs|tests)/, output)
|
12
12
|
end
|
13
13
|
|
14
14
|
def test_runs_all_tests_on_given_line_number
|
15
15
|
output = m('examples/multiple_example_test.rb:6')
|
16
|
-
assert_output(/3 tests/, output)
|
16
|
+
assert_output(/3 (runs|tests)/, output)
|
17
17
|
end
|
18
18
|
end
|
data/test/options_test.rb
CHANGED
@@ -17,17 +17,49 @@ class OptionsTest < MTest
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def test_short_line_option
|
20
|
-
output = m('-l20 examples/
|
21
|
-
assert_output(/1 tests, 1 assertions/, output)
|
20
|
+
output = m('-l20 examples/minitest_example_test.rb')
|
21
|
+
assert_output(/1 (runs|tests), 1 assertions/, output)
|
22
22
|
end
|
23
23
|
|
24
24
|
def test_long_line_option
|
25
|
-
output = m('--line 20 examples/
|
26
|
-
assert_output(/1 tests, 1 assertions/, output)
|
25
|
+
output = m('--line 20 examples/minitest_example_test.rb')
|
26
|
+
assert_output(/1 (runs|tests), 1 assertions/, output)
|
27
27
|
end
|
28
28
|
|
29
29
|
def test_line_option_has_precedence_over_colon_format
|
30
|
-
output = m('--line 20 examples/
|
31
|
-
assert_output(/1 tests, 1 assertions/, output)
|
30
|
+
output = m('--line 20 examples/minitest_example_test.rb:2')
|
31
|
+
assert_output(/1 (runs|tests), 1 assertions/, output)
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_recursive_option
|
35
|
+
output = m('-r examples/subdir')
|
36
|
+
assert_output(/5 (runs|tests)/, output)
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_recursive_option_without_directory_arg_fails
|
40
|
+
output = m('-r')
|
41
|
+
assert_match(/OptionParser::MissingArgument/, output)
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_passthrough_options
|
45
|
+
output = m('-- --verbose')
|
46
|
+
assert_output(/0 errors/, output)
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_passthrough_options_name_with_file
|
50
|
+
output = m('examples/minitest_example_test.rb -- --name /test_that_it_will_not_blend/')
|
51
|
+
assert_output(/1 (runs|tests)/, output)
|
52
|
+
assert_output(/0 failures/, output)
|
53
|
+
assert_output(/0 errors/, output)
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_passthrough_options_with_file
|
57
|
+
output = m('examples/minitest_example_test.rb -- --verbose')
|
58
|
+
assert_output(/3 (runs|tests), 9 assertions/, output)
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_passthrough_options_with_file_and_other_options
|
62
|
+
output = m('--line 20 examples/minitest_example_test.rb -- --verbose')
|
63
|
+
assert_output(/1 (runs|tests), 1 assertions/, output)
|
32
64
|
end
|
33
65
|
end
|
data/test/test_helper.rb
CHANGED
@@ -16,6 +16,11 @@ module Testable
|
|
16
16
|
assert $?.success?, "Execution failed, output:\n\n#{output}"
|
17
17
|
assert_match regexp, output
|
18
18
|
end
|
19
|
+
|
20
|
+
def assert_output_for_failed_execution(regexp, output)
|
21
|
+
refute $?.success?, "Execution did not fail, but it should"
|
22
|
+
assert_match regexp, output
|
23
|
+
end
|
19
24
|
end
|
20
25
|
|
21
26
|
require 'm'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: m
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Quaranto
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-09-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: method_source
|
@@ -120,6 +120,7 @@ files:
|
|
120
120
|
- gemfiles/minitest5.gemfile.lock
|
121
121
|
- gemfiles/test_unit_gem.gemfile
|
122
122
|
- gemfiles/test_unit_gem.gemfile.lock
|
123
|
+
- lib/error_tests/error_test.rb
|
123
124
|
- lib/m.rb
|
124
125
|
- lib/m/executor.rb
|
125
126
|
- lib/m/frameworks.rb
|
@@ -133,7 +134,7 @@ files:
|
|
133
134
|
- lib/m/test_collection.rb
|
134
135
|
- lib/m/test_method.rb
|
135
136
|
- lib/m/testable.rb
|
136
|
-
- lib/version.rb
|
137
|
+
- lib/m/version.rb
|
137
138
|
- m.gemspec
|
138
139
|
- rush.jpg
|
139
140
|
- test/Rakefile
|
@@ -147,12 +148,16 @@ files:
|
|
147
148
|
- test/examples/empty_example_test.rb
|
148
149
|
- test/examples/minitest_4_example_test.rb
|
149
150
|
- test/examples/minitest_5_example_test.rb
|
151
|
+
- test/examples/minitest_example_test.rb
|
150
152
|
- test/examples/multiple_example_test.rb
|
151
153
|
- test/examples/subdir/a_test.rb
|
154
|
+
- test/examples/subdir/another_subdir/d_test.rb
|
155
|
+
- test/examples/subdir/another_subdir/yet_another_subdir/e_test.rb
|
152
156
|
- test/examples/subdir/b_test.rb
|
153
157
|
- test/examples/subdir/c_test.rb
|
154
158
|
- test/examples/subdir_with_failures/a_test.rb
|
155
159
|
- test/examples/test_unit_example_test.rb
|
160
|
+
- test/exit_codes_test.rb
|
156
161
|
- test/minitest_4_test.rb
|
157
162
|
- test/minitest_5_test.rb
|
158
163
|
- test/multiple_test.rb
|
@@ -162,7 +167,7 @@ files:
|
|
162
167
|
homepage: https://github.com/qrush/m
|
163
168
|
licenses: []
|
164
169
|
metadata: {}
|
165
|
-
post_install_message:
|
170
|
+
post_install_message:
|
166
171
|
rdoc_options: []
|
167
172
|
require_paths:
|
168
173
|
- lib
|
@@ -177,9 +182,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
177
182
|
- !ruby/object:Gem::Version
|
178
183
|
version: '0'
|
179
184
|
requirements: []
|
180
|
-
|
181
|
-
|
182
|
-
signing_key:
|
185
|
+
rubygems_version: 3.2.27
|
186
|
+
signing_key:
|
183
187
|
specification_version: 4
|
184
188
|
summary: Run test/unit tests by line number. Metal!
|
185
189
|
test_files:
|
@@ -194,12 +198,16 @@ test_files:
|
|
194
198
|
- test/examples/empty_example_test.rb
|
195
199
|
- test/examples/minitest_4_example_test.rb
|
196
200
|
- test/examples/minitest_5_example_test.rb
|
201
|
+
- test/examples/minitest_example_test.rb
|
197
202
|
- test/examples/multiple_example_test.rb
|
198
203
|
- test/examples/subdir/a_test.rb
|
204
|
+
- test/examples/subdir/another_subdir/d_test.rb
|
205
|
+
- test/examples/subdir/another_subdir/yet_another_subdir/e_test.rb
|
199
206
|
- test/examples/subdir/b_test.rb
|
200
207
|
- test/examples/subdir/c_test.rb
|
201
208
|
- test/examples/subdir_with_failures/a_test.rb
|
202
209
|
- test/examples/test_unit_example_test.rb
|
210
|
+
- test/exit_codes_test.rb
|
203
211
|
- test/minitest_4_test.rb
|
204
212
|
- test/minitest_5_test.rb
|
205
213
|
- test/multiple_test.rb
|
data/lib/version.rb
DELETED