m 1.4.2 → 1.5.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 +4 -4
- data/.travis.yml +2 -0
- data/README.md +14 -2
- data/gemfiles/minitest4.gemfile.lock +2 -2
- data/gemfiles/minitest5.gemfile.lock +2 -2
- data/gemfiles/test_unit_gem.gemfile.lock +2 -2
- data/lib/error_tests/error_test.rb +7 -0
- data/lib/m/parser.rb +16 -3
- data/lib/m/testable.rb +3 -2
- data/lib/version.rb +1 -1
- data/test/everything_test.rb +1 -1
- 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/options_test.rb +10 -0
- data/test/test_helper.rb +5 -0
- metadata +10 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 797baa07531404e7d5add0a5928b0a3997dae6c6
|
4
|
+
data.tar.gz: b0210ac7b23dc08ce3666568c783cf44fcebffa1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 47430e39fa825c9ce6f6c1ce0290a2bcde416edbaa5bf9113e7b5b0f53f532e563ece5ca322dd74bc686f82eabecf90dc5e513893b8845c57317cd3f3fd7d526
|
7
|
+
data.tar.gz: 2a6b64f5c7eac7f794843e12699114c790ee2de5a7a92161fe71c9f237c82b8f67080a9b8608c0a00ebb553b99fb1f084024f3ef6900ac003ba6a949d839d75b
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -36,7 +36,7 @@ If you’re using Bundler, you’ll need to include it in your Gemfile. Toss it
|
|
36
36
|
|
37
37
|
``` ruby
|
38
38
|
group :test do
|
39
|
-
gem 'm', '~> 1.
|
39
|
+
gem 'm', '~> 1.5.0'
|
40
40
|
end
|
41
41
|
```
|
42
42
|
|
@@ -46,7 +46,7 @@ Developing a RubyGem? Add m as a development dependency.
|
|
46
46
|
``` ruby
|
47
47
|
Gem::Specification.new do |gem|
|
48
48
|
# ...
|
49
|
-
gem.add_development_dependency "m", "~> 1.
|
49
|
+
gem.add_development_dependency "m", "~> 1.5.0"
|
50
50
|
end
|
51
51
|
```
|
52
52
|
|
@@ -114,6 +114,18 @@ Want to run the whole test? Just leave off the line number.
|
|
114
114
|
|
115
115
|
1 tests, 2 assertions, 0 failures, 0 errors, 0 skips
|
116
116
|
|
117
|
+
If you want to run all the tests in a directory as well as its subdirectories, use the `-r` flag:
|
118
|
+
|
119
|
+
$ m -r test/models
|
120
|
+
"Searching provided directory for tests recursively"
|
121
|
+
Run options:
|
122
|
+
|
123
|
+
..
|
124
|
+
|
125
|
+
Finished in 3.459902s, 45.0880 runs/s, 87.5747 assertions/s.
|
126
|
+
|
127
|
+
156 tests, 303 assertions, 0 failures, 0 errors, 13 skips
|
128
|
+
|
117
129
|
|
118
130
|
SUPPORT
|
119
131
|
=======
|
data/lib/m/parser.rb
CHANGED
@@ -25,15 +25,15 @@ module M
|
|
25
25
|
Rake::TestTask.new(:m_custom) do |t|
|
26
26
|
t.libs << 'test'
|
27
27
|
t.libs << 'spec'
|
28
|
-
t.test_files = FileList["
|
28
|
+
t.test_files = FileList[wildcard("test"), wildcard("spec")]
|
29
29
|
end
|
30
30
|
# Invoke the rake task and exit, hopefully it'll work!
|
31
31
|
begin
|
32
32
|
Rake::Task['m_custom'].invoke
|
33
33
|
rescue RuntimeError
|
34
|
-
exit
|
34
|
+
exit(1)
|
35
35
|
ensure
|
36
|
-
exit
|
36
|
+
exit($?.exitstatus)
|
37
37
|
end
|
38
38
|
else
|
39
39
|
return testable
|
@@ -67,8 +67,21 @@ module M
|
|
67
67
|
testable.line = line
|
68
68
|
end
|
69
69
|
|
70
|
+
opts.on '-r', '--recursive DIR', 'Search provided directory recursively.' do |directory|
|
71
|
+
testable.recursive = true
|
72
|
+
argv << directory
|
73
|
+
end
|
74
|
+
|
70
75
|
opts.parse! argv
|
71
76
|
end
|
72
77
|
end
|
78
|
+
|
79
|
+
def wildcard(type)
|
80
|
+
if testable.recursive
|
81
|
+
"#{testable.file}/**/*#{type}*.rb"
|
82
|
+
else
|
83
|
+
"#{testable.file}/*#{type}*.rb"
|
84
|
+
end
|
85
|
+
end
|
73
86
|
end
|
74
87
|
end
|
data/lib/m/testable.rb
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
module M
|
2
2
|
class Testable
|
3
|
-
attr_accessor :file
|
3
|
+
attr_accessor :file, :recursive
|
4
4
|
attr_reader :line
|
5
5
|
|
6
|
-
def initialize(file = "", line = nil)
|
6
|
+
def initialize(file = "", line = nil, recursive = false)
|
7
7
|
@file = file
|
8
8
|
@line = line
|
9
|
+
@recursive = recursive
|
9
10
|
end
|
10
11
|
|
11
12
|
def line=(line)
|
data/lib/version.rb
CHANGED
data/test/everything_test.rb
CHANGED
@@ -27,7 +27,7 @@ class EverythingTest < MTest
|
|
27
27
|
|
28
28
|
def test_running_tests_with_failures_within_a_subdirectory
|
29
29
|
output = m('examples/subdir_with_failures')
|
30
|
-
|
30
|
+
assert_output_for_failed_execution(/1 tests, 1 assertions, 1 failures/, output)
|
31
31
|
end
|
32
32
|
|
33
33
|
def test_blank_file_is_quieter
|
@@ -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/options_test.rb
CHANGED
@@ -30,4 +30,14 @@ class OptionsTest < MTest
|
|
30
30
|
output = m('--line 20 examples/minitest_4_example_test.rb:2')
|
31
31
|
assert_output(/1 tests, 1 assertions/, output)
|
32
32
|
end
|
33
|
+
|
34
|
+
def test_recursive_option
|
35
|
+
output = m('-r examples/subdir')
|
36
|
+
assert_output(/5 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
|
33
43
|
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.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Quaranto
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-05-06 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
|
@@ -149,10 +150,13 @@ files:
|
|
149
150
|
- test/examples/minitest_5_example_test.rb
|
150
151
|
- test/examples/multiple_example_test.rb
|
151
152
|
- test/examples/subdir/a_test.rb
|
153
|
+
- test/examples/subdir/another_subdir/d_test.rb
|
154
|
+
- test/examples/subdir/another_subdir/yet_another_subdir/e_test.rb
|
152
155
|
- test/examples/subdir/b_test.rb
|
153
156
|
- test/examples/subdir/c_test.rb
|
154
157
|
- test/examples/subdir_with_failures/a_test.rb
|
155
158
|
- test/examples/test_unit_example_test.rb
|
159
|
+
- test/exit_codes_test.rb
|
156
160
|
- test/minitest_4_test.rb
|
157
161
|
- test/minitest_5_test.rb
|
158
162
|
- test/multiple_test.rb
|
@@ -178,7 +182,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
178
182
|
version: '0'
|
179
183
|
requirements: []
|
180
184
|
rubyforge_project:
|
181
|
-
rubygems_version: 2.
|
185
|
+
rubygems_version: 2.5.1
|
182
186
|
signing_key:
|
183
187
|
specification_version: 4
|
184
188
|
summary: Run test/unit tests by line number. Metal!
|
@@ -196,10 +200,13 @@ test_files:
|
|
196
200
|
- test/examples/minitest_5_example_test.rb
|
197
201
|
- test/examples/multiple_example_test.rb
|
198
202
|
- test/examples/subdir/a_test.rb
|
203
|
+
- test/examples/subdir/another_subdir/d_test.rb
|
204
|
+
- test/examples/subdir/another_subdir/yet_another_subdir/e_test.rb
|
199
205
|
- test/examples/subdir/b_test.rb
|
200
206
|
- test/examples/subdir/c_test.rb
|
201
207
|
- test/examples/subdir_with_failures/a_test.rb
|
202
208
|
- test/examples/test_unit_example_test.rb
|
209
|
+
- test/exit_codes_test.rb
|
203
210
|
- test/minitest_4_test.rb
|
204
211
|
- test/minitest_5_test.rb
|
205
212
|
- test/multiple_test.rb
|