mrspec 0.1.2 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rspec +0 -3
- data/bin/mrspec +2 -0
- data/lib/mrspec/{option_parser.rb → add_options_to_rspec_parser.rb} +9 -3
- data/lib/mrspec/configuration.rb +12 -1
- data/lib/mrspec/version.rb +1 -1
- data/lib/mrspec.rb +1 -1
- data/mrspec.gemspec +1 -1
- data/test/test_formatter_configuration.rb +39 -0
- data/test/test_parser_monkey_patches.rb +18 -0
- metadata +19 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 67f780aa00ec439a3a02949504abde99cf6fcf6a
|
4
|
+
data.tar.gz: 587d8a5cdb8d00d0cf43116277bd46267a41a0c7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ca564c0d264259457e0b35417aacd89e7382fa2e3e0ec508068634312cf87e89213a2a0aa9311eb00667bccb4f55ad1414402271a0371164e23359497787d1bd
|
7
|
+
data.tar.gz: 4bc61ec3937446e6a0bf1b2ee6a57604f831acd457b8cb85d494ea2febd61427ff59a7fb73f8214e5f679e4d65ba4326a68d53215886bf41a76dce2e4c02192f
|
data/.rspec
CHANGED
data/bin/mrspec
CHANGED
@@ -22,12 +22,18 @@ class RSpec::Core::Parser
|
|
22
22
|
# calling exit and toplevel puts, b/c that's what RSpec's does https://github.com/rspec/rspec-core/blob/c7c1154934c42b5f6905bb7bd22025fe6c8a816c/lib/rspec/core/option_parser.rb#L290
|
23
23
|
# and I don't feel like figuring out how to work around it.
|
24
24
|
option_parser.on('-v', '--version', 'Display the version.') do
|
25
|
-
puts "mrspec #{MRspec::VERSION}\n"\
|
26
|
-
|
27
|
-
|
25
|
+
$stdout.puts "mrspec #{MRspec::VERSION}\n"\
|
26
|
+
"rspec-core #{RSpec::Core::Version::STRING}\n"\
|
27
|
+
"minitest #{Minitest::VERSION}\n"
|
28
28
|
exit
|
29
29
|
end
|
30
30
|
|
31
|
+
format_description = option_parser.top.short['f'].desc
|
32
|
+
first_option = format_description.find { |s| s[/\[[a-zA-Z]\]/] }
|
33
|
+
leading_whitespace = first_option[/^\s*/]
|
34
|
+
index = format_description.index first_option
|
35
|
+
format_description.insert index, "#{leading_whitespace}[w]hat (we've got here is an error to communicate)"
|
36
|
+
|
31
37
|
option_parser
|
32
38
|
end
|
33
39
|
|
data/lib/mrspec/configuration.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
-
require 'mrspec/declare_minitests'
|
2
1
|
require 'rspec/core'
|
2
|
+
require 'mrspec/declare_minitests'
|
3
|
+
require 'error_to_communicate/rspec_formatter'
|
3
4
|
|
4
5
|
module MRspec
|
5
6
|
class Configuration < RSpec::Core::Configuration
|
@@ -8,11 +9,21 @@ module MRspec
|
|
8
9
|
disable_monkey_patching!
|
9
10
|
filter_gems_from_backtrace 'mrspec', 'minitest'
|
10
11
|
self.pattern = pattern.sub '*_spec.rb', '{*_spec,*_test,test_*}.rb'
|
12
|
+
self.default_formatter = WhatWeveGotHereIsAnErrorToCommunicate::RSpecFormatter
|
11
13
|
end
|
12
14
|
|
13
15
|
def load_spec_files(*)
|
14
16
|
super
|
15
17
|
MRspec::DeclareMinitests.call(RSpec, Minitest, Minitest::Runnable.runnables)
|
16
18
|
end
|
19
|
+
|
20
|
+
def add_formatter(*args)
|
21
|
+
if args.any? { |formatter| formatter == 'w' || formatter =~ /^what/ }
|
22
|
+
super WhatWeveGotHereIsAnErrorToCommunicate::RSpecFormatter
|
23
|
+
else
|
24
|
+
super
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
17
28
|
end
|
18
29
|
end
|
data/lib/mrspec/version.rb
CHANGED
data/lib/mrspec.rb
CHANGED
data/mrspec.gemspec
CHANGED
@@ -18,8 +18,8 @@ Gem::Specification.new do |s|
|
|
18
18
|
|
19
19
|
s.add_dependency "rspec-core", "~> 3.0"
|
20
20
|
s.add_dependency "minitest", "~> 5.0"
|
21
|
+
s.add_dependency "what_weve_got_here_is_an_error_to_communicate", "~> 0.0.3"
|
21
22
|
|
22
23
|
s.add_development_dependency "haiti", ">= 0.2.2", "< 0.3"
|
23
24
|
s.add_development_dependency "cucumber", "~> 2.0"
|
24
|
-
s.add_development_dependency "what_weve_got_here_is_an_error_to_communicate", "> 0"
|
25
25
|
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'support/helper'
|
2
|
+
|
3
|
+
class TestFormatterConfiguration < Minitest::Spec
|
4
|
+
def formatters_are!(*formatters, &block)
|
5
|
+
config = MRspec::Configuration.new
|
6
|
+
block.call config
|
7
|
+
assert_equal formatters, config.formatters.map(&:class)
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'defaults to WhatWeveGotHereIsAnErrorToCommunicate::RSpecFormatter' do
|
11
|
+
refute_equal RSpec::Core::Configuration.new.default_formatter,
|
12
|
+
WhatWeveGotHereIsAnErrorToCommunicate::RSpecFormatter
|
13
|
+
|
14
|
+
assert_equal MRspec::Configuration.new.default_formatter,
|
15
|
+
WhatWeveGotHereIsAnErrorToCommunicate::RSpecFormatter
|
16
|
+
end
|
17
|
+
|
18
|
+
|
19
|
+
it 'doesn\'t fuck up the normal formatter selection' do
|
20
|
+
formatters_are! RSpec::Core::Formatters::ProgressFormatter do |config|
|
21
|
+
config.add_formatter 'p'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
it 'can be specified with "--format w" and "--format what<anything>"' do
|
27
|
+
formatters_are! WhatWeveGotHereIsAnErrorToCommunicate::RSpecFormatter do |config|
|
28
|
+
config.add_formatter 'what'
|
29
|
+
end
|
30
|
+
|
31
|
+
formatters_are! WhatWeveGotHereIsAnErrorToCommunicate::RSpecFormatter do |config|
|
32
|
+
config.add_formatter 'whatever'
|
33
|
+
end
|
34
|
+
|
35
|
+
assert_raises ArgumentError, /\bwha\b/ do
|
36
|
+
MRspec::Configuration.new.add_formatter 'wha'
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -70,6 +70,24 @@ class TestParserMonkeyPatches < Minitest::Spec
|
|
70
70
|
# Giving up on making sure these are equivalent, it's not the end of the world if they aren't
|
71
71
|
# I'm basically at a point where I think that no one should use OptionParser
|
72
72
|
it 'sets the correct description for the versions'
|
73
|
+
|
74
|
+
it 'includes the what_weve_got_here_is_an_error_to_communicate formatter in the help screen' do
|
75
|
+
parser = Parser.new.mrspec_parser({})
|
76
|
+
help = record_hostile_parsing parser, '--help'
|
77
|
+
formatters = help.lines
|
78
|
+
.drop_while { |l| l !~ /--format/ }
|
79
|
+
.drop(1)
|
80
|
+
.take_while { |l| l =~ /^\s*\[/ }
|
81
|
+
refute_empty formatters
|
82
|
+
indentation, initials = formatters.map { |formatter_line|
|
83
|
+
[formatter_line[/^\s*/].length,
|
84
|
+
formatter_line[/\[.\]/]
|
85
|
+
]
|
86
|
+
}.transpose
|
87
|
+
first_indentation = indentation.first
|
88
|
+
indentation.each { |i| assert_equal first_indentation, i }
|
89
|
+
assert_equal '[w]', initials.first
|
90
|
+
end
|
73
91
|
end
|
74
92
|
|
75
93
|
it 'stores the current parser in .parser_method' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mrspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh Cheek
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-06-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec-core
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '5.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: what_weve_got_here_is_an_error_to_communicate
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.0.3
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.0.3
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: haiti
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,20 +86,6 @@ dependencies:
|
|
72
86
|
- - "~>"
|
73
87
|
- !ruby/object:Gem::Version
|
74
88
|
version: '2.0'
|
75
|
-
- !ruby/object:Gem::Dependency
|
76
|
-
name: what_weve_got_here_is_an_error_to_communicate
|
77
|
-
requirement: !ruby/object:Gem::Requirement
|
78
|
-
requirements:
|
79
|
-
- - ">"
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
version: '0'
|
82
|
-
type: :development
|
83
|
-
prerelease: false
|
84
|
-
version_requirements: !ruby/object:Gem::Requirement
|
85
|
-
requirements:
|
86
|
-
- - ">"
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
version: '0'
|
89
89
|
description: 'Allows you to run Minitest tests and specs with RSpec''s runner, thus
|
90
90
|
you can write both Minitest and RSpec, side-by-side, and take advantage of the many
|
91
91
|
incredibly helpful features it supports (primarily: better formatters, --colour,
|
@@ -106,17 +106,18 @@ files:
|
|
106
106
|
- features/mrspec.feature
|
107
107
|
- features/support/env.rb
|
108
108
|
- lib/mrspec.rb
|
109
|
+
- lib/mrspec/add_options_to_rspec_parser.rb
|
109
110
|
- lib/mrspec/configuration.rb
|
110
111
|
- lib/mrspec/declare_minitests.rb
|
111
112
|
- lib/mrspec/fix_backtraces_on_minitest_spec.rb
|
112
113
|
- lib/mrspec/minitest_assertion_for_rspec.rb
|
113
114
|
- lib/mrspec/minitest_metadata.rb
|
114
|
-
- lib/mrspec/option_parser.rb
|
115
115
|
- lib/mrspec/runner.rb
|
116
116
|
- lib/mrspec/version.rb
|
117
117
|
- mrspec.gemspec
|
118
118
|
- test/support/helper.rb
|
119
119
|
- test/support/mock.rb
|
120
|
+
- test/test_formatter_configuration.rb
|
120
121
|
- test/test_mrspec.rb
|
121
122
|
- test/test_parser_monkey_patches.rb
|
122
123
|
homepage: https://github.com/JoshCheek/mrspec
|
@@ -148,6 +149,7 @@ test_files:
|
|
148
149
|
- features/support/env.rb
|
149
150
|
- test/support/helper.rb
|
150
151
|
- test/support/mock.rb
|
152
|
+
- test/test_formatter_configuration.rb
|
151
153
|
- test/test_mrspec.rb
|
152
154
|
- test/test_parser_monkey_patches.rb
|
153
155
|
has_rdoc:
|