m 1.2.1 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/.gitignore +1 -0
  2. data/lib/m.rb +16 -12
  3. data/test/everything_test.rb +5 -0
  4. metadata +14 -14
data/.gitignore CHANGED
@@ -15,3 +15,4 @@ test/tmp
15
15
  test/version_tmp
16
16
  tmp
17
17
  /docs
18
+ _site
data/lib/m.rb CHANGED
@@ -15,14 +15,14 @@
15
15
  #If you're using Bundler, you'll need to include it in your Gemfile. Toss it into the `test` group:
16
16
  #
17
17
  # group :test do
18
- # gem 'm', '~> 1.2.1'
18
+ # gem 'm', '~> 1.3.0'
19
19
  # end
20
20
  #
21
21
  #Developing a RubyGem? Add `m` as a development dependency.
22
22
  #
23
23
  # Gem::Specification.new do |gem|
24
24
  # # ...
25
- # gem.add_development_dependency "m", "~> 1.2.1"
25
+ # gem.add_development_dependency "m", "~> 1.3.0"
26
26
  # end
27
27
  #
28
28
  #`m` is Ruby 1.9+ only. Sorry, but `method_source`, `sourcify`, and `ruby_parser`
@@ -98,11 +98,11 @@
98
98
  ### M, your metal test runner
99
99
  # Maybe this gem should have a longer name? Metal?
100
100
  module M
101
- VERSION = "1.2.1" unless defined?(VERSION)
101
+ VERSION = "1.3.0" unless defined?(VERSION)
102
102
 
103
- # Accept arguments coming from bin/m and run tests.
103
+ # Accept arguments coming from bin/m and run tests, then bail out immediately.
104
104
  def self.run(argv)
105
- Runner.new(argv).run
105
+ exit Runner.new(argv).run
106
106
  end
107
107
 
108
108
  ### Runner is in charge of running your tests.
@@ -188,13 +188,13 @@ module M
188
188
 
189
189
  # directly run the tests from here and exit with the status of the tests passing or failing
190
190
  if defined?(MiniTest)
191
- exit MiniTest::Unit.runner.run test_arguments
191
+ MiniTest::Unit.runner.run test_arguments
192
192
  elsif defined?(Test)
193
- exit Test::Unit::AutoRunner.run(false, nil, test_arguments)
193
+ Test::Unit::AutoRunner.run(false, nil, test_arguments)
194
194
  else
195
195
  not_supported
196
196
  end
197
- else
197
+ elsif tests.size > 0
198
198
  # Otherwise we found no tests on this line, so you need to pick one.
199
199
  message = "No tests found on line #{@line}. Valid tests to run:\n\n"
200
200
 
@@ -204,8 +204,9 @@ module M
204
204
  message << "#{sprintf("%0#{tests.column_size}s", test.name)}: m #{@file}:#{test.start_line}\n"
205
205
  end
206
206
 
207
- # fail like a good unix process should.
208
- abort message
207
+ # Spit out helpful message and bail
208
+ STDERR.puts message
209
+ false
209
210
  end
210
211
  end
211
212
 
@@ -219,7 +220,8 @@ module M
219
220
  load @file
220
221
  rescue LoadError => e
221
222
  # Fail with a happier error message instead of spitting out a backtrace from this gem
222
- abort "Failed loading test file:\n#{e.message}"
223
+ STDERR.puts "Failed loading test file:\n#{e.message}"
224
+ return []
223
225
  end
224
226
 
225
227
  # Figure out what test framework we're using
@@ -228,6 +230,7 @@ module M
228
230
  elsif defined?(Test)
229
231
  suites = Test::Unit::TestCase.test_suites
230
232
  else
233
+ suites = []
231
234
  not_supported
232
235
  end
233
236
 
@@ -259,7 +262,8 @@ module M
259
262
 
260
263
  # Fail loudly if this isn't supported
261
264
  def not_supported
262
- abort "This test framework is not supported! Please open up an issue at https://github.com/qrush/m !"
265
+ STDERR.puts "This test framework is not supported! Please open up an issue at https://github.com/qrush/m !"
266
+ false
263
267
  end
264
268
  end
265
269
  end
@@ -20,4 +20,9 @@ class EverythingTest < MTest
20
20
  output = m('examples')
21
21
  assert_output /12 tests/, output
22
22
  end
23
+
24
+ def test_blank_file_is_quieter
25
+ output = m('bananas')
26
+ assert_no_match /Valid tests to run/, output
27
+ end
23
28
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: m
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-31 00:00:00.000000000 Z
12
+ date: 2012-12-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: method_source
16
- requirement: &70180267027540 !ruby/object:Gem::Requirement
16
+ requirement: &70225299419800 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.6.7
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70180267027540
24
+ version_requirements: *70225299419800
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &70180267027020 !ruby/object:Gem::Requirement
27
+ requirement: &70225299443320 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -35,10 +35,10 @@ dependencies:
35
35
  version: 1.0.0
36
36
  type: :runtime
37
37
  prerelease: false
38
- version_requirements: *70180267027020
38
+ version_requirements: *70225299443320
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: activesupport
41
- requirement: &70180271669780 !ruby/object:Gem::Requirement
41
+ requirement: &70225299459740 !ruby/object:Gem::Requirement
42
42
  none: false
43
43
  requirements:
44
44
  - - ! '>='
@@ -46,10 +46,10 @@ dependencies:
46
46
  version: '0'
47
47
  type: :development
48
48
  prerelease: false
49
- version_requirements: *70180271669780
49
+ version_requirements: *70225299459740
50
50
  - !ruby/object:Gem::Dependency
51
51
  name: rdiscount
52
- requirement: &70180271667380 !ruby/object:Gem::Requirement
52
+ requirement: &70225299469180 !ruby/object:Gem::Requirement
53
53
  none: false
54
54
  requirements:
55
55
  - - ! '>='
@@ -57,10 +57,10 @@ dependencies:
57
57
  version: '0'
58
58
  type: :development
59
59
  prerelease: false
60
- version_requirements: *70180271667380
60
+ version_requirements: *70225299469180
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: rocco
63
- requirement: &70180271663080 !ruby/object:Gem::Requirement
63
+ requirement: &70225299478220 !ruby/object:Gem::Requirement
64
64
  none: false
65
65
  requirements:
66
66
  - - ! '>='
@@ -68,10 +68,10 @@ dependencies:
68
68
  version: '0'
69
69
  type: :development
70
70
  prerelease: false
71
- version_requirements: *70180271663080
71
+ version_requirements: *70225299478220
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: minitest
74
- requirement: &70180273292300 !ruby/object:Gem::Requirement
74
+ requirement: &70225299488700 !ruby/object:Gem::Requirement
75
75
  none: false
76
76
  requirements:
77
77
  - - ! '>='
@@ -79,7 +79,7 @@ dependencies:
79
79
  version: '0'
80
80
  type: :development
81
81
  prerelease: false
82
- version_requirements: *70180273292300
82
+ version_requirements: *70225299488700
83
83
  description:
84
84
  email:
85
85
  - nick@quaran.to