summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorBenoit Daloze <eregontp@gmail.com>2019-11-30 21:26:49 +0100
committerBenoit Daloze <eregontp@gmail.com>2019-11-30 21:26:49 +0100
commitab8345271eb87ff155d8bd5f22f53a4cf2902c26 (patch)
treea775c04b2f78d0e5ee566251f4cfbbaaf1051328 /spec
parent93a512414cbe3713f478038f6d4f5fe81c4eb62a (diff)
Update to ruby/mspec@a401f63
Diffstat (limited to 'spec')
-rwxr-xr-xspec/mspec/lib/mspec/commands/mkspec.rb2
-rw-r--r--spec/mspec/lib/mspec/commands/mspec-ci.rb2
-rw-r--r--spec/mspec/lib/mspec/commands/mspec-run.rb2
-rw-r--r--spec/mspec/lib/mspec/commands/mspec-tag.rb2
-rwxr-xr-xspec/mspec/lib/mspec/commands/mspec.rb2
-rw-r--r--spec/mspec/lib/mspec/helpers/datetime.rb2
-rw-r--r--spec/mspec/lib/mspec/helpers/flunk.rb2
-rw-r--r--spec/mspec/lib/mspec/helpers/fs.rb2
-rw-r--r--spec/mspec/lib/mspec/helpers/io.rb2
-rw-r--r--spec/mspec/lib/mspec/helpers/numeric.rb2
-rw-r--r--spec/mspec/lib/mspec/helpers/tmp.rb2
-rw-r--r--spec/mspec/lib/mspec/matchers/have_instance_method.rb2
-rw-r--r--spec/mspec/lib/mspec/matchers/have_method.rb2
-rw-r--r--spec/mspec/lib/mspec/matchers/have_private_instance_method.rb2
-rw-r--r--spec/mspec/lib/mspec/matchers/have_private_method.rb2
-rw-r--r--spec/mspec/lib/mspec/matchers/have_protected_instance_method.rb2
-rw-r--r--spec/mspec/lib/mspec/matchers/have_public_instance_method.rb2
-rw-r--r--spec/mspec/lib/mspec/matchers/have_singleton_method.rb2
-rw-r--r--spec/mspec/lib/mspec/matchers/method.rb2
-rw-r--r--spec/mspec/lib/mspec/matchers/output.rb2
-rw-r--r--spec/mspec/lib/mspec/matchers/raise_error.rb2
-rw-r--r--spec/mspec/lib/mspec/mocks/mock.rb2
-rw-r--r--spec/mspec/lib/mspec/mocks/object.rb4
-rw-r--r--spec/mspec/lib/mspec/mocks/proxy.rb6
-rw-r--r--spec/mspec/lib/mspec/runner/actions/filter.rb2
-rw-r--r--spec/mspec/lib/mspec/runner/actions/leakchecker.rb2
-rw-r--r--spec/mspec/lib/mspec/runner/actions/profile.rb60
-rw-r--r--spec/mspec/lib/mspec/runner/actions/tag.rb2
-rw-r--r--spec/mspec/lib/mspec/runner/actions/taglist.rb2
-rw-r--r--spec/mspec/lib/mspec/runner/actions/tally.rb14
-rw-r--r--spec/mspec/lib/mspec/runner/actions/timeout.rb2
-rw-r--r--spec/mspec/lib/mspec/runner/context.rb4
-rw-r--r--spec/mspec/lib/mspec/runner/evaluate.rb4
-rw-r--r--spec/mspec/lib/mspec/runner/example.rb2
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/base.rb128
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/describe.rb1
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/dotted.rb128
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/file.rb9
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/html.rb8
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/junit.rb9
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/method.rb12
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/profile.rb60
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/specdoc.rb10
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/spinner.rb9
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/summary.rb11
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/unit.rb1
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/yaml.rb10
-rw-r--r--spec/mspec/lib/mspec/runner/mspec.rb4
-rw-r--r--spec/mspec/lib/mspec/runner/object.rb6
-rw-r--r--spec/mspec/lib/mspec/runner/shared.rb2
-rw-r--r--spec/mspec/lib/mspec/runner/tag.rb2
-rw-r--r--spec/mspec/lib/mspec/utils/name_map.rb4
-rw-r--r--spec/mspec/lib/mspec/utils/options.rb4
-rw-r--r--spec/mspec/lib/mspec/utils/script.rb5
-rw-r--r--spec/mspec/spec/integration/run_spec.rb8
-rw-r--r--spec/mspec/spec/runner/formatters/multi_spec.rb4
56 files changed, 305 insertions, 278 deletions
diff --git a/spec/mspec/lib/mspec/commands/mkspec.rb b/spec/mspec/lib/mspec/commands/mkspec.rb
index 49a2e6b616..d10cc35d18 100755
--- a/spec/mspec/lib/mspec/commands/mkspec.rb
+++ b/spec/mspec/lib/mspec/commands/mkspec.rb
@@ -19,7 +19,7 @@ class MkSpec
@map = NameMap.new true
end
- def options(argv=ARGV)
+ def options(argv = ARGV)
options = MSpecOptions.new "mkspec [options]", 32
options.on("-c", "--constant", "CONSTANT",
diff --git a/spec/mspec/lib/mspec/commands/mspec-ci.rb b/spec/mspec/lib/mspec/commands/mspec-ci.rb
index 2882613350..a31db1d7dc 100644
--- a/spec/mspec/lib/mspec/commands/mspec-ci.rb
+++ b/spec/mspec/lib/mspec/commands/mspec-ci.rb
@@ -8,7 +8,7 @@ require 'mspec/utils/script'
class MSpecCI < MSpecScript
- def options(argv=ARGV)
+ def options(argv = ARGV)
options = MSpecOptions.new "mspec ci [options] (FILE|DIRECTORY|GLOB)+", 30, config
options.doc " Ask yourself:"
diff --git a/spec/mspec/lib/mspec/commands/mspec-run.rb b/spec/mspec/lib/mspec/commands/mspec-run.rb
index 1e62bf2a13..4d8f4d9984 100644
--- a/spec/mspec/lib/mspec/commands/mspec-run.rb
+++ b/spec/mspec/lib/mspec/commands/mspec-run.rb
@@ -14,7 +14,7 @@ class MSpecRun < MSpecScript
config[:files] = []
end
- def options(argv=ARGV)
+ def options(argv = ARGV)
options = MSpecOptions.new "mspec run [options] (FILE|DIRECTORY|GLOB)+", 30, config
options.doc " Ask yourself:"
diff --git a/spec/mspec/lib/mspec/commands/mspec-tag.rb b/spec/mspec/lib/mspec/commands/mspec-tag.rb
index f5d85026ae..e1d04d1446 100644
--- a/spec/mspec/lib/mspec/commands/mspec-tag.rb
+++ b/spec/mspec/lib/mspec/commands/mspec-tag.rb
@@ -15,7 +15,7 @@ class MSpecTag < MSpecScript
config[:ltags] = []
end
- def options(argv=ARGV)
+ def options(argv = ARGV)
options = MSpecOptions.new "mspec tag [options] (FILE|DIRECTORY|GLOB)+", 30, config
options.doc " Ask yourself:"
diff --git a/spec/mspec/lib/mspec/commands/mspec.rb b/spec/mspec/lib/mspec/commands/mspec.rb
index f6caf93978..9d82949ff1 100755
--- a/spec/mspec/lib/mspec/commands/mspec.rb
+++ b/spec/mspec/lib/mspec/commands/mspec.rb
@@ -21,7 +21,7 @@ class MSpecMain < MSpecScript
config[:launch] = []
end
- def options(argv=ARGV)
+ def options(argv = ARGV)
config[:command] = argv.shift if ["ci", "run", "tag"].include?(argv[0])
options = MSpecOptions.new "mspec [COMMAND] [options] (FILE|DIRECTORY|GLOB)+", 30, config
diff --git a/spec/mspec/lib/mspec/helpers/datetime.rb b/spec/mspec/lib/mspec/helpers/datetime.rb
index 1520b971ea..3a40cc0902 100644
--- a/spec/mspec/lib/mspec/helpers/datetime.rb
+++ b/spec/mspec/lib/mspec/helpers/datetime.rb
@@ -6,7 +6,7 @@
#
# Possible keys are:
# :year, :month, :day, :hour, :minute, :second, :offset and :sg.
-def new_datetime(opts={})
+def new_datetime(opts = {})
require 'date'
value = {
diff --git a/spec/mspec/lib/mspec/helpers/flunk.rb b/spec/mspec/lib/mspec/helpers/flunk.rb
index 68fb3cadac..84fb3ab39c 100644
--- a/spec/mspec/lib/mspec/helpers/flunk.rb
+++ b/spec/mspec/lib/mspec/helpers/flunk.rb
@@ -1,3 +1,3 @@
-def flunk(msg="This example is a failure")
+def flunk(msg = "This example is a failure")
SpecExpectation.fail_with "Failed:", msg
end
diff --git a/spec/mspec/lib/mspec/helpers/fs.rb b/spec/mspec/lib/mspec/helpers/fs.rb
index 26dd821162..67453eb302 100644
--- a/spec/mspec/lib/mspec/helpers/fs.rb
+++ b/spec/mspec/lib/mspec/helpers/fs.rb
@@ -55,7 +55,7 @@ end
# Creates a file +name+. Creates the directory for +name+
# if it does not exist.
-def touch(name, mode="w")
+def touch(name, mode = "w")
mkdir_p File.dirname(name)
File.open(name, mode) do |f|
diff --git a/spec/mspec/lib/mspec/helpers/io.rb b/spec/mspec/lib/mspec/helpers/io.rb
index d12d4b6ec3..1938255d1a 100644
--- a/spec/mspec/lib/mspec/helpers/io.rb
+++ b/spec/mspec/lib/mspec/helpers/io.rb
@@ -64,7 +64,7 @@ end
# Creates a "bare" file descriptor (i.e. one that is not associated
# with any Ruby object). The file descriptor can safely be passed
# to IO.new without creating a Ruby object alias to the fd.
-def new_fd(name, mode="w:utf-8")
+def new_fd(name, mode = "w:utf-8")
if mode.kind_of? Hash
if mode.key? :mode
mode = mode[:mode]
diff --git a/spec/mspec/lib/mspec/helpers/numeric.rb b/spec/mspec/lib/mspec/helpers/numeric.rb
index 312aafae35..c6c2e82722 100644
--- a/spec/mspec/lib/mspec/helpers/numeric.rb
+++ b/spec/mspec/lib/mspec/helpers/numeric.rb
@@ -8,7 +8,7 @@ def infinity_value
1/0.0
end
-def bignum_value(plus=0)
+def bignum_value(plus = 0)
0x8000_0000_0000_0000 + plus
end
diff --git a/spec/mspec/lib/mspec/helpers/tmp.rb b/spec/mspec/lib/mspec/helpers/tmp.rb
index 4e1273dcfe..1677fb4f14 100644
--- a/spec/mspec/lib/mspec/helpers/tmp.rb
+++ b/spec/mspec/lib/mspec/helpers/tmp.rb
@@ -30,7 +30,7 @@ all specs are cleaning up temporary files:
end
end
-def tmp(name, uniquify=true)
+def tmp(name, uniquify = true)
Dir.mkdir SPEC_TEMP_DIR unless Dir.exist? SPEC_TEMP_DIR
if uniquify and !name.empty?
diff --git a/spec/mspec/lib/mspec/matchers/have_instance_method.rb b/spec/mspec/lib/mspec/matchers/have_instance_method.rb
index 636aaf3e47..9a5a31aa0f 100644
--- a/spec/mspec/lib/mspec/matchers/have_instance_method.rb
+++ b/spec/mspec/lib/mspec/matchers/have_instance_method.rb
@@ -18,7 +18,7 @@ class HaveInstanceMethodMatcher < MethodMatcher
end
module MSpecMatchers
- private def have_instance_method(method, include_super=true)
+ private def have_instance_method(method, include_super = true)
HaveInstanceMethodMatcher.new method, include_super
end
end
diff --git a/spec/mspec/lib/mspec/matchers/have_method.rb b/spec/mspec/lib/mspec/matchers/have_method.rb
index 35dae03af0..e962e69e0a 100644
--- a/spec/mspec/lib/mspec/matchers/have_method.rb
+++ b/spec/mspec/lib/mspec/matchers/have_method.rb
@@ -18,7 +18,7 @@ class HaveMethodMatcher < MethodMatcher
end
module MSpecMatchers
- private def have_method(method, include_super=true)
+ private def have_method(method, include_super = true)
HaveMethodMatcher.new method, include_super
end
end
diff --git a/spec/mspec/lib/mspec/matchers/have_private_instance_method.rb b/spec/mspec/lib/mspec/matchers/have_private_instance_method.rb
index 4eb7133055..d32db76c6a 100644
--- a/spec/mspec/lib/mspec/matchers/have_private_instance_method.rb
+++ b/spec/mspec/lib/mspec/matchers/have_private_instance_method.rb
@@ -18,7 +18,7 @@ class HavePrivateInstanceMethodMatcher < MethodMatcher
end
module MSpecMatchers
- private def have_private_instance_method(method, include_super=true)
+ private def have_private_instance_method(method, include_super = true)
HavePrivateInstanceMethodMatcher.new method, include_super
end
end
diff --git a/spec/mspec/lib/mspec/matchers/have_private_method.rb b/spec/mspec/lib/mspec/matchers/have_private_method.rb
index 3433d982cc..c74165cfc7 100644
--- a/spec/mspec/lib/mspec/matchers/have_private_method.rb
+++ b/spec/mspec/lib/mspec/matchers/have_private_method.rb
@@ -18,7 +18,7 @@ class HavePrivateMethodMatcher < MethodMatcher
end
module MSpecMatchers
- private def have_private_method(method, include_super=true)
+ private def have_private_method(method, include_super = true)
HavePrivateMethodMatcher.new method, include_super
end
end
diff --git a/spec/mspec/lib/mspec/matchers/have_protected_instance_method.rb b/spec/mspec/lib/mspec/matchers/have_protected_instance_method.rb
index 641d4d0dc2..1deb2f995d 100644
--- a/spec/mspec/lib/mspec/matchers/have_protected_instance_method.rb
+++ b/spec/mspec/lib/mspec/matchers/have_protected_instance_method.rb
@@ -18,7 +18,7 @@ class HaveProtectedInstanceMethodMatcher < MethodMatcher
end
module MSpecMatchers
- private def have_protected_instance_method(method, include_super=true)
+ private def have_protected_instance_method(method, include_super = true)
HaveProtectedInstanceMethodMatcher.new method, include_super
end
end
diff --git a/spec/mspec/lib/mspec/matchers/have_public_instance_method.rb b/spec/mspec/lib/mspec/matchers/have_public_instance_method.rb
index 501c0a418e..0e620532c0 100644
--- a/spec/mspec/lib/mspec/matchers/have_public_instance_method.rb
+++ b/spec/mspec/lib/mspec/matchers/have_public_instance_method.rb
@@ -18,7 +18,7 @@ class HavePublicInstanceMethodMatcher < MethodMatcher
end
module MSpecMatchers
- private def have_public_instance_method(method, include_super=true)
+ private def have_public_instance_method(method, include_super = true)
HavePublicInstanceMethodMatcher.new method, include_super
end
end
diff --git a/spec/mspec/lib/mspec/matchers/have_singleton_method.rb b/spec/mspec/lib/mspec/matchers/have_singleton_method.rb
index 95d78709ff..b60dd2536b 100644
--- a/spec/mspec/lib/mspec/matchers/have_singleton_method.rb
+++ b/spec/mspec/lib/mspec/matchers/have_singleton_method.rb
@@ -18,7 +18,7 @@ class HaveSingletonMethodMatcher < MethodMatcher
end
module MSpecMatchers
- private def have_singleton_method(method, include_super=true)
+ private def have_singleton_method(method, include_super = true)
HaveSingletonMethodMatcher.new method, include_super
end
end
diff --git a/spec/mspec/lib/mspec/matchers/method.rb b/spec/mspec/lib/mspec/matchers/method.rb
index e8cdfa62ff..2b54419faa 100644
--- a/spec/mspec/lib/mspec/matchers/method.rb
+++ b/spec/mspec/lib/mspec/matchers/method.rb
@@ -1,5 +1,5 @@
class MethodMatcher
- def initialize(method, include_super=true)
+ def initialize(method, include_super = true)
@include_super = include_super
@method = method.to_sym
end
diff --git a/spec/mspec/lib/mspec/matchers/output.rb b/spec/mspec/lib/mspec/matchers/output.rb
index b89b6ca0f6..20721df743 100644
--- a/spec/mspec/lib/mspec/matchers/output.rb
+++ b/spec/mspec/lib/mspec/matchers/output.rb
@@ -61,7 +61,7 @@ class OutputMatcher
end
module MSpecMatchers
- private def output(stdout=nil, stderr=nil)
+ private def output(stdout = nil, stderr = nil)
OutputMatcher.new(stdout, stderr)
end
end
diff --git a/spec/mspec/lib/mspec/matchers/raise_error.rb b/spec/mspec/lib/mspec/matchers/raise_error.rb
index a720460091..0e57c1b863 100644
--- a/spec/mspec/lib/mspec/matchers/raise_error.rb
+++ b/spec/mspec/lib/mspec/matchers/raise_error.rb
@@ -74,7 +74,7 @@ class RaiseErrorMatcher
end
module MSpecMatchers
- private def raise_error(exception=Exception, message=nil, &block)
+ private def raise_error(exception = Exception, message = nil, &block)
RaiseErrorMatcher.new(exception, message, &block)
end
end
diff --git a/spec/mspec/lib/mspec/mocks/mock.rb b/spec/mspec/lib/mspec/mocks/mock.rb
index cb4875bbd6..bce41b630f 100644
--- a/spec/mspec/lib/mspec/mocks/mock.rb
+++ b/spec/mspec/lib/mspec/mocks/mock.rb
@@ -48,7 +48,7 @@ module Mock
end
end
- def self.install_method(obj, sym, type=nil)
+ def self.install_method(obj, sym, type = nil)
meta = obj.singleton_class
key = replaced_key obj, sym
diff --git a/spec/mspec/lib/mspec/mocks/object.rb b/spec/mspec/lib/mspec/mocks/object.rb
index 19a50ac4e1..fcaa1caef0 100644
--- a/spec/mspec/lib/mspec/mocks/object.rb
+++ b/spec/mspec/lib/mspec/mocks/object.rb
@@ -15,7 +15,7 @@ class Object
end
end
-def mock(name, options={})
+def mock(name, options = {})
MockObject.new name, options
end
@@ -23,6 +23,6 @@ def mock_int(val)
MockIntObject.new(val)
end
-def mock_numeric(name, options={})
+def mock_numeric(name, options = {})
NumericMockObject.new name, options
end
diff --git a/spec/mspec/lib/mspec/mocks/proxy.rb b/spec/mspec/lib/mspec/mocks/proxy.rb
index f5acc89d62..8473132b0b 100644
--- a/spec/mspec/lib/mspec/mocks/proxy.rb
+++ b/spec/mspec/lib/mspec/mocks/proxy.rb
@@ -1,5 +1,5 @@
class MockObject
- def initialize(name, options={})
+ def initialize(name, options = {})
@name = name
@null = options[:null_object]
end
@@ -11,7 +11,7 @@ class MockObject
end
class NumericMockObject < Numeric
- def initialize(name, options={})
+ def initialize(name, options = {})
@name = name
@null = options[:null_object]
end
@@ -50,7 +50,7 @@ end
class MockProxy
attr_reader :raising, :yielding
- def initialize(type=nil)
+ def initialize(type = nil)
@multiple_returns = nil
@returning = nil
@raising = nil
diff --git a/spec/mspec/lib/mspec/runner/actions/filter.rb b/spec/mspec/lib/mspec/runner/actions/filter.rb
index 35899c8dc8..b0ad7080da 100644
--- a/spec/mspec/lib/mspec/runner/actions/filter.rb
+++ b/spec/mspec/lib/mspec/runner/actions/filter.rb
@@ -10,7 +10,7 @@ require 'mspec/runner/filters/match'
# trigger the action.
class ActionFilter
- def initialize(tags=nil, descs=nil)
+ def initialize(tags = nil, descs = nil)
@tags = Array(tags)
descs = Array(descs)
@sfilter = descs.empty? ? nil : MatchFilter.new(nil, *descs)
diff --git a/spec/mspec/lib/mspec/runner/actions/leakchecker.rb b/spec/mspec/lib/mspec/runner/actions/leakchecker.rb
index 79659f1e78..f70799d904 100644
--- a/spec/mspec/lib/mspec/runner/actions/leakchecker.rb
+++ b/spec/mspec/lib/mspec/runner/actions/leakchecker.rb
@@ -141,7 +141,7 @@ class LeakChecker
end
end
- def find_tempfiles(prev_count=-1)
+ def find_tempfiles(prev_count = -1)
return [prev_count, []] unless defined? Tempfile
extend_tempfile_counter
count = TempfileCounter.count
diff --git a/spec/mspec/lib/mspec/runner/actions/profile.rb b/spec/mspec/lib/mspec/runner/actions/profile.rb
new file mode 100644
index 0000000000..c743d6e3e8
--- /dev/null
+++ b/spec/mspec/lib/mspec/runner/actions/profile.rb
@@ -0,0 +1,60 @@
+class ProfileAction
+ def initialize
+ @describe_name = nil
+ @describe_time = nil
+ @describes = []
+ @its = []
+ end
+
+ def register
+ MSpec.register :enter, self
+ MSpec.register :before,self
+ MSpec.register :after, self
+ MSpec.register :finish,self
+ end
+
+ def enter(describe)
+ if @describe_time
+ @describes << [@describe_name, now - @describe_time]
+ end
+
+ @describe_name = describe
+ @describe_time = now
+ end
+
+ def before(state)
+ @it_name = state.it
+ @it_time = now
+ end
+
+ def after(state = nil)
+ @its << [@describe_name, @it_name, now - @it_time]
+ end
+
+ def finish
+ puts "\nProfiling info:"
+
+ desc = @describes.sort { |a,b| b.last <=> a.last }
+ desc.delete_if { |a| a.last <= 0.001 }
+ show = desc[0, 100]
+
+ puts "Top #{show.size} describes:"
+
+ show.each do |des, time|
+ printf "%3.3f - %s\n", time, des
+ end
+
+ its = @its.sort { |a,b| b.last <=> a.last }
+ its.delete_if { |a| a.last <= 0.001 }
+ show = its[0, 100]
+
+ puts "\nTop #{show.size} its:"
+ show.each do |des, it, time|
+ printf "%3.3f - %s %s\n", time, des, it
+ end
+ end
+
+ def now
+ Time.now.to_f
+ end
+end
diff --git a/spec/mspec/lib/mspec/runner/actions/tag.rb b/spec/mspec/lib/mspec/runner/actions/tag.rb
index 760152b2a3..d40d562451 100644
--- a/spec/mspec/lib/mspec/runner/actions/tag.rb
+++ b/spec/mspec/lib/mspec/runner/actions/tag.rb
@@ -22,7 +22,7 @@ require 'mspec/runner/actions/filter'
# spec description strings
class TagAction < ActionFilter
- def initialize(action, outcome, tag, comment, tags=nil, descs=nil)
+ def initialize(action, outcome, tag, comment, tags = nil, descs = nil)
super tags, descs
@action = action
@outcome = outcome
diff --git a/spec/mspec/lib/mspec/runner/actions/taglist.rb b/spec/mspec/lib/mspec/runner/actions/taglist.rb
index c1aba53794..3097e655d5 100644
--- a/spec/mspec/lib/mspec/runner/actions/taglist.rb
+++ b/spec/mspec/lib/mspec/runner/actions/taglist.rb
@@ -4,7 +4,7 @@ require 'mspec/runner/actions/filter'
# tagged with +tags+. If +tags+ is an empty list, prints out
# descriptions for any specs that are tagged.
class TagListAction
- def initialize(tags=nil)
+ def initialize(tags = nil)
@tags = tags.nil? || tags.empty? ? nil : Array(tags)
@filter = nil
end
diff --git a/spec/mspec/lib/mspec/runner/actions/tally.rb b/spec/mspec/lib/mspec/runner/actions/tally.rb
index 33f937293c..d6ada53bab 100644
--- a/spec/mspec/lib/mspec/runner/actions/tally.rb
+++ b/spec/mspec/lib/mspec/runner/actions/tally.rb
@@ -5,31 +5,31 @@ class Tally
@files = @examples = @expectations = @failures = @errors = @guards = @tagged = 0
end
- def files!(add=1)
+ def files!(add = 1)
@files += add
end
- def examples!(add=1)
+ def examples!(add = 1)
@examples += add
end
- def expectations!(add=1)
+ def expectations!(add = 1)
@expectations += add
end
- def failures!(add=1)
+ def failures!(add = 1)
@failures += add
end
- def errors!(add=1)
+ def errors!(add = 1)
@errors += add
end
- def guards!(add=1)
+ def guards!(add = 1)
@guards += add
end
- def tagged!(add=1)
+ def tagged!(add = 1)
@tagged += add
end
diff --git a/spec/mspec/lib/mspec/runner/actions/timeout.rb b/spec/mspec/lib/mspec/runner/actions/timeout.rb
index 9090efbe44..03fe14811f 100644
--- a/spec/mspec/lib/mspec/runner/actions/timeout.rb
+++ b/spec/mspec/lib/mspec/runner/actions/timeout.rb
@@ -45,7 +45,7 @@ class TimeoutAction
end
end
- def before(state=nil)
+ def before(state = nil)
time = now
@queue << -> do
@current_state = state
diff --git a/spec/mspec/lib/mspec/runner/context.rb b/spec/mspec/lib/mspec/runner/context.rb
index d72b947e0c..5f6c9c8ae9 100644
--- a/spec/mspec/lib/mspec/runner/context.rb
+++ b/spec/mspec/lib/mspec/runner/context.rb
@@ -12,7 +12,7 @@
class ContextState
attr_reader :state, :parent, :parents, :children, :examples, :to_s
- def initialize(mod, options=nil)
+ def initialize(mod, options = nil)
@to_s = mod.to_s
if options.is_a? Hash
@options = options
@@ -174,7 +174,7 @@ class ContextState
# so that exceptions are handled and tallied. Returns true and does
# NOT evaluate any blocks if +check+ is true and
# <tt>MSpec.mode?(:pretend)</tt> is true.
- def protect(what, blocks, check=true)
+ def protect(what, blocks, check = true)
return true if check and MSpec.mode? :pretend
Array(blocks).all? { |block| MSpec.protect what, &block }
end
diff --git a/spec/mspec/lib/mspec/runner/evaluate.rb b/spec/mspec/lib/mspec/runner/evaluate.rb
index ecf7460a90..396a84c118 100644
--- a/spec/mspec/lib/mspec/runner/evaluate.rb
+++ b/spec/mspec/lib/mspec/runner/evaluate.rb
@@ -19,7 +19,7 @@ class SpecEvaluate
# single quotes to set if off from the rest of the description string. If
# the source does contain newline characters, sets the indent level to four
# characters.
- def format(ruby, newline=true)
+ def format(ruby, newline = true)
if ruby.include?("\n")
lines = ruby.each_line.to_a
if /( *)/ =~ lines.first
@@ -49,6 +49,6 @@ class SpecEvaluate
end
end
-def evaluate(str, desc=nil, &block)
+def evaluate(str, desc = nil, &block)
SpecEvaluate.new(str, desc).define(&block)
end
diff --git a/spec/mspec/lib/mspec/runner/example.rb b/spec/mspec/lib/mspec/runner/example.rb
index 19eb29b079..82feba0b03 100644
--- a/spec/mspec/lib/mspec/runner/example.rb
+++ b/spec/mspec/lib/mspec/runner/example.rb
@@ -5,7 +5,7 @@ require 'mspec/runner/mspec'
class ExampleState
attr_reader :context, :it, :example
- def initialize(context, it, example=nil)
+ def initialize(context, it, example = nil)
@context = context
@it = it
@example = example
diff --git a/spec/mspec/lib/mspec/runner/formatters/base.rb b/spec/mspec/lib/mspec/runner/formatters/base.rb
new file mode 100644
index 0000000000..6c075c4d0a
--- /dev/null
+++ b/spec/mspec/lib/mspec/runner/formatters/base.rb
@@ -0,0 +1,128 @@
+require 'mspec/expectations/expectations'
+require 'mspec/runner/actions/timer'
+require 'mspec/runner/actions/tally'
+
+if ENV['CHECK_LEAKS']
+ require 'mspec/runner/actions/leakchecker'
+ require 'mspec/runner/actions/constants_leak_checker'
+end
+
+class BaseFormatter
+ attr_reader :exceptions, :timer, :tally
+
+ def initialize(out = nil)
+ @current_state = nil
+ @exception = false
+ @failure = false
+ @exceptions = []
+
+ @count = 0 # For subclasses
+
+ if out.nil?
+ @out = $stdout
+ else
+ @out = File.open out, "w"
+ end
+ end
+
+ # Creates the +TimerAction+ and +TallyAction+ instances and registers them.
+ def register
+ (@timer = TimerAction.new).register
+ (@tally = TallyAction.new).register
+ @counter = @tally.counter
+
+ if ENV['CHECK_LEAKS']
+ save = ENV['CHECK_LEAKS'] == 'save'
+ LeakCheckerAction.new.register
+ ConstantsLeakCheckerAction.new(save).register
+ end
+
+ MSpec.register :abort, self
+ MSpec.register :before, self
+ MSpec.register :after, self
+ MSpec.register :exception, self
+ MSpec.register :finish, self
+ end
+
+ def abort
+ if @current_state
+ puts "\naborting example: #{@current_state.description}"
+ end
+ end
+
+ # Returns true if any exception is raised while running
+ # an example. This flag is reset before each example
+ # is evaluated.
+ def exception?
+ @exception
+ end
+
+ # Returns true if all exceptions during the evaluation
+ # of an example are failures rather than errors. See
+ # <tt>ExceptionState#failure</tt>. This flag is reset
+ # before each example is evaluated.
+ def failure?
+ @failure
+ end
+
+ # Callback for the MSpec :before event. Resets the
+ # +#exception?+ and +#failure+ flags.
+ def before(state = nil)
+ @current_state = state
+ @failure = @exception = false
+ end
+
+ # Callback for the MSpec :exception event. Stores the
+ # +ExceptionState+ object to generate the list of backtraces
+ # after all the specs are run. Also updates the internal
+ # +#exception?+ and +#failure?+ flags.
+ def exception(exception)
+ @count += 1
+ @failure = @exception ? @failure && exception.failure? : exception.failure?
+ @exception = true
+ @exceptions << exception
+ end
+
+ # Callback for the MSpec :after event.
+ def after(state = nil)
+ @current_state = nil
+ end
+
+ # Callback for the MSpec :start event. Calls :after event.
+ # Defined here, in the base class, and used by MultiFormatter.
+ def start
+ after
+ end
+
+ # Callback for the MSpec :unload event. Calls :after event.
+ # Defined here, in the base class, and used by MultiFormatter.
+ def unload
+ after
+ end
+
+ # Callback for the MSpec :finish event. Prints a description
+ # and backtrace for every exception that occurred while
+ # evaluating the examples.
+ def finish
+ print "\n"
+ count = 0
+ @exceptions.each do |exc|
+ count += 1
+ print_exception(exc, count)
+ end
+ print "\n#{@timer.format}\n\n#{@tally.format}\n"
+ end
+
+ def print_exception(exc, count)
+ outcome = exc.failure? ? "FAILED" : "ERROR"
+ print "\n#{count})\n#{exc.description} #{outcome}\n"
+ print exc.message, "\n"
+ print exc.backtrace, "\n"
+ end
+
+ # A convenience method to allow printing to different outputs.
+ def print(*args)
+ @out.print(*args)
+ @out.flush
+ end
+end
diff --git a/spec/mspec/lib/mspec/runner/formatters/describe.rb b/spec/mspec/lib/mspec/runner/formatters/describe.rb
index 176bd79279..fc4122d13b 100644
--- a/spec/mspec/lib/mspec/runner/formatters/describe.rb
+++ b/spec/mspec/lib/mspec/runner/formatters/describe.rb
@@ -1,5 +1,4 @@
require 'mspec/runner/formatters/dotted'
-require 'mspec/runner/actions/tally'
class DescribeFormatter < DottedFormatter
# Callback for the MSpec :finish event. Prints a summary of
diff --git a/spec/mspec/lib/mspec/runner/formatters/dotted.rb b/spec/mspec/lib/mspec/runner/formatters/dotted.rb
index 7e30a22e8d..672cdf81dc 100644
--- a/spec/mspec/lib/mspec/runner/formatters/dotted.rb
+++ b/spec/mspec/lib/mspec/runner/formatters/dotted.rb
@@ -1,85 +1,9 @@
-require 'mspec/expectations/expectations'
-require 'mspec/runner/actions/timer'
-require 'mspec/runner/actions/tally'
+require 'mspec/runner/formatters/base'
-if ENV['CHECK_LEAKS']
- require 'mspec/runner/actions/leakchecker'
- require 'mspec/runner/actions/constants_leak_checker'
-end
-
-class DottedFormatter
- attr_reader :exceptions, :timer, :tally
-
- def initialize(out=nil)
- @exception = @failure = false
- @exceptions = []
- @count = 0 # For subclasses
- if out.nil?
- @out = $stdout
- else
- @out = File.open out, "w"
- end
-
- @current_state = nil
- end
-
- # Creates the +TimerAction+ and +TallyAction+ instances and
- # registers them. Registers +self+ for the +:exception+,
- # +:before+, +:after+, and +:finish+ actions.
+class DottedFormatter < BaseFormatter
def register
- (@timer = TimerAction.new).register
- (@tally = TallyAction.new).register
- if ENV['CHECK_LEAKS']
- save = ENV['CHECK_LEAKS'] == 'save'
- LeakCheckerAction.new.register
- ConstantsLeakCheckerAction.new(save).register
- end
- @counter = @tally.counter
-
- MSpec.register :exception, self
- MSpec.register :before, self
- MSpec.register :after, self
- MSpec.register :finish, self
- MSpec.register :abort, self
- end
-
- def abort
- if @current_state
- puts "\naborting example: #{@current_state.description}"
- end
- end
-
- # Returns true if any exception is raised while running
- # an example. This flag is reset before each example
- # is evaluated.
- def exception?
- @exception
- end
-
- # Returns true if all exceptions during the evaluation
- # of an example are failures rather than errors. See
- # <tt>ExceptionState#failure</tt>. This flag is reset
- # before each example is evaluated.
- def failure?
- @failure
- end
-
- # Callback for the MSpec :before event. Resets the
- # +#exception?+ and +#failure+ flags.
- def before(state=nil)
- @current_state = state
- @failure = @exception = false
- end
-
- # Callback for the MSpec :exception event. Stores the
- # +ExceptionState+ object to generate the list of backtraces
- # after all the specs are run. Also updates the internal
- # +#exception?+ and +#failure?+ flags.
- def exception(exception)
- @count += 1
- @failure = @exception ? @failure && exception.failure? : exception.failure?
- @exception = true
- @exceptions << exception
+ super
+ MSpec.register :after, self
end
# Callback for the MSpec :after event. Prints an indicator
@@ -88,48 +12,12 @@ class DottedFormatter
# F = An SpecExpectationNotMetError was raised
# E = Any exception other than SpecExpectationNotMetError
def after(state = nil)
- @current_state = nil
+ super(state)
- unless exception?
- print "."
- else
+ if exception?
print failure? ? "F" : "E"
+ else
+ print "."
end
end
-
- # Callback for the MSpec :start event. Calls :after event.
- def start
- after
- end
-
- # Callback for the MSpec :unload event. Calls :after event.
- def unload
- after
- end
-
- # Callback for the MSpec :finish event. Prints a description
- # and backtrace for every exception that occurred while
- # evaluating the examples.
- def finish
- print "\n"
- count = 0
- @exceptions.each do |exc|
- count += 1
- print_exception(exc, count)
- end
- print "\n#{@timer.format}\n\n#{@tally.format}\n"
- end
-
- def print_exception(exc, count)
- outcome = exc.failure? ? "FAILED" : "ERROR"
- print "\n#{count})\n#{exc.description} #{outcome}\n"
- print exc.message, "\n"
- print exc.backtrace, "\n"
- end
-
- # A convenience method to allow printing to different outputs.
- def print(*args)
- @out.print(*args)
- @out.flush
- end
end
diff --git a/spec/mspec/lib/mspec/runner/formatters/file.rb b/spec/mspec/lib/mspec/runner/formatters/file.rb
index 6db72af4ff..65cfb1f75b 100644
--- a/spec/mspec/lib/mspec/runner/formatters/file.rb
+++ b/spec/mspec/lib/mspec/runner/formatters/file.rb
@@ -14,6 +14,11 @@ class FileFormatter < DottedFormatter
MSpec.register :unload, self
end
- alias_method :load, :before
- alias_method :unload, :after
+ def load(state = nil)
+ before(state)
+ end
+
+ def unload(state = nil)
+ after(state)
+ end
end
diff --git a/spec/mspec/lib/mspec/runner/formatters/html.rb b/spec/mspec/lib/mspec/runner/formatters/html.rb
index f79c7161f9..e37e89a088 100644
--- a/spec/mspec/lib/mspec/runner/formatters/html.rb
+++ b/spec/mspec/lib/mspec/runner/formatters/html.rb
@@ -1,7 +1,6 @@
-require 'mspec/expectations/expectations'
-require 'mspec/runner/formatters/dotted'
+require 'mspec/runner/formatters/base'
-class HtmlFormatter < DottedFormatter
+class HtmlFormatter < BaseFormatter
def register
super
MSpec.register :start, self
@@ -44,13 +43,14 @@ EOH
end
def exception(exception)
- super
+ super(exception)
outcome = exception.failure? ? "FAILED" : "ERROR"
print %[<li class="fail">- #{exception.it} (<a href="#details-#{@count}">]
print %[#{outcome} - #{@count}</a>)</li>\n]
end
def after(state = nil)
+ super(state)
print %[<li class="pass">- #{state.it}</li>\n] unless exception?
end
diff --git a/spec/mspec/lib/mspec/runner/formatters/junit.rb b/spec/mspec/lib/mspec/runner/formatters/junit.rb
index 76d46c2414..12e43a3263 100644
--- a/spec/mspec/lib/mspec/runner/formatters/junit.rb
+++ b/spec/mspec/lib/mspec/runner/formatters/junit.rb
@@ -1,19 +1,18 @@
-require 'mspec/expectations/expectations'
require 'mspec/runner/formatters/yaml'
class JUnitFormatter < YamlFormatter
- def initialize(out=nil)
- super
+ def initialize(out = nil)
+ super(out)
@tests = []
end
def after(state = nil)
- super
+ super(state)
@tests << {:test => state, :exception => false} unless exception?
end
def exception(exception)
- super
+ super(exception)
@tests << {:test => exception, :exception => true}
end
diff --git a/spec/mspec/lib/mspec/runner/formatters/method.rb b/spec/mspec/lib/mspec/runner/formatters/method.rb
index 8a460665ff..8fe02575c4 100644
--- a/spec/mspec/lib/mspec/runner/formatters/method.rb
+++ b/spec/mspec/lib/mspec/runner/formatters/method.rb
@@ -1,10 +1,10 @@
-require 'mspec/runner/formatters/dotted'
+require 'mspec/runner/formatters/base'
-class MethodFormatter < DottedFormatter
+class MethodFormatter < BaseFormatter
attr_accessor :methods
- def initialize(out=nil)
- super
+ def initialize(out = nil)
+ super(out)
@methods = Hash.new do |h, k|
hash = {}
hash[:examples] = 0
@@ -34,7 +34,7 @@ class MethodFormatter < DottedFormatter
# Resets the tallies so the counts are only for this
# example.
def before(state)
- super
+ super(state)
# The pattern for a method name is not correctly
# restrictive but it is simplistic and useful
@@ -61,6 +61,8 @@ class MethodFormatter < DottedFormatter
# Callback for the MSpec :after event. Sets or adds to
# tallies for the example block.
def after(state = nil)
+ super(state)
+
h = methods[@key]
h[:examples] += tally.counter.examples
h[:expectations] += tally.counter.expectations
diff --git a/spec/mspec/lib/mspec/runner/formatters/profile.rb b/spec/mspec/lib/mspec/runner/formatters/profile.rb
index 6d15a56349..38ef5b12ed 100644
--- a/spec/mspec/lib/mspec/runner/formatters/profile.rb
+++ b/spec/mspec/lib/mspec/runner/formatters/profile.rb
@@ -1,9 +1,9 @@
-require 'mspec/expectations/expectations'
require 'mspec/runner/formatters/dotted'
+require 'mspec/runner/actions/profile'
class ProfileFormatter < DottedFormatter
- def initialize(out=nil)
- super
+ def initialize(out = nil)
+ super(out)
@describe_name = nil
@describe_time = nil
@@ -12,59 +12,7 @@ class ProfileFormatter < DottedFormatter
end
def register
- super
- MSpec.register :enter, self
- end
-
- # Callback for the MSpec :enter event. Prints the
- # +describe+ block string.
- def enter(describe)
- if @describe_time
- @describes << [@describe_name, Time.now.to_f - @describe_time]
- end
-
- @describe_name = describe
- @describe_time = Time.now.to_f
- end
-
- # Callback for the MSpec :before event. Prints the
- # +it+ block string.
- def before(state)
- super
-
- @it_name = state.it
- @it_time = Time.now.to_f
- end
-
- # Callback for the MSpec :after event. Prints a
- # newline to finish the description string output.
- def after(state = nil)
- @its << [@describe_name, @it_name, Time.now.to_f - @it_time]
- super
- end
-
- def finish
- puts "\nProfiling info:"
-
- desc = @describes.sort { |a,b| b.last <=> a.last }
- desc.delete_if { |a| a.last <= 0.001 }
- show = desc[0, 100]
-
- puts "Top #{show.size} describes:"
-
- show.each do |des, time|
- printf "%3.3f - %s\n", time, des
- end
-
- its = @its.sort { |a,b| b.last <=> a.last }
- its.delete_if { |a| a.last <= 0.001 }
- show = its[0, 100]
-
- puts "\nTop #{show.size} its:"
- show.each do |des, it, time|
- printf "%3.3f - %s %s\n", time, des, it
- end
-
+ (@profile = ProfileAction.new).register
super
end
end
diff --git a/spec/mspec/lib/mspec/runner/formatters/specdoc.rb b/spec/mspec/lib/mspec/runner/formatters/specdoc.rb
index 06ac7702df..35092018f6 100644
--- a/spec/mspec/lib/mspec/runner/formatters/specdoc.rb
+++ b/spec/mspec/lib/mspec/runner/formatters/specdoc.rb
@@ -1,7 +1,6 @@
-require 'mspec/expectations/expectations'
-require 'mspec/runner/formatters/dotted'
+require 'mspec/runner/formatters/base'
-class SpecdocFormatter < DottedFormatter
+class SpecdocFormatter < BaseFormatter
def register
super
MSpec.register :enter, self
@@ -16,7 +15,7 @@ class SpecdocFormatter < DottedFormatter
# Callback for the MSpec :before event. Prints the
# +it+ block string.
def before(state)
- super
+ super(state)
print "- #{state.it}"
end
@@ -29,13 +28,14 @@ class SpecdocFormatter < DottedFormatter
# string has an associated 'ERROR' or 'FAILED'
def exception(exception)
print "\n- #{exception.it}" if exception?
- super
+ super(exception)
print " (#{exception.failure? ? 'FAILED' : 'ERROR'} - #{@count})"
end
# Callback for the MSpec :after event. Prints a
# newline to finish the description string output.
def after(state = nil)
+ super(state)
print "\n"
end
end
diff --git a/spec/mspec/lib/mspec/runner/formatters/spinner.rb b/spec/mspec/lib/mspec/runner/formatters/spinner.rb
index f9101aece3..8815e1a48a 100644
--- a/spec/mspec/lib/mspec/runner/formatters/spinner.rb
+++ b/spec/mspec/lib/mspec/runner/formatters/spinner.rb
@@ -1,14 +1,13 @@
-require 'mspec/expectations/expectations'
-require 'mspec/runner/formatters/dotted'
+require 'mspec/runner/formatters/base'
-class SpinnerFormatter < DottedFormatter
+class SpinnerFormatter < BaseFormatter
attr_reader :length
Spins = %w!| / - \\!
HOUR = 3600
MIN = 60
- def initialize(out=nil)
+ def initialize(out = nil)
super(nil)
@which = 0
@@ -28,7 +27,6 @@ class SpinnerFormatter < DottedFormatter
MSpec.register :start, self
MSpec.register :unload, self
- MSpec.unregister :before, self
end
def length=(length)
@@ -107,6 +105,7 @@ class SpinnerFormatter < DottedFormatter
# Callback for the MSpec :after event. Updates the spinner.
def after(state = nil)
+ super(state)
print progress_line
end
end
diff --git a/spec/mspec/lib/mspec/runner/formatters/summary.rb b/spec/mspec/lib/mspec/runner/formatters/summary.rb
index 2dfa751b57..41819d2158 100644
--- a/spec/mspec/lib/mspec/runner/formatters/summary.rb
+++ b/spec/mspec/lib/mspec/runner/formatters/summary.rb
@@ -1,11 +1,4 @@
-require 'mspec/expectations/expectations'
-require 'mspec/runner/formatters/dotted'
+require 'mspec/runner/formatters/base'
-class SummaryFormatter < DottedFormatter
- # Callback for the MSpec :after event. Overrides the
- # callback provided by +DottedFormatter+ and does not
- # print any output for each example evaluated.
- def after(state = nil)
- # do nothing
- end
+class SummaryFormatter < BaseFormatter
end
diff --git a/spec/mspec/lib/mspec/runner/formatters/unit.rb b/spec/mspec/lib/mspec/runner/formatters/unit.rb
index cebc18a49b..d03ae79e9f 100644
--- a/spec/mspec/lib/mspec/runner/formatters/unit.rb
+++ b/spec/mspec/lib/mspec/runner/formatters/unit.rb
@@ -1,4 +1,3 @@
-require 'mspec/expectations/expectations'
require 'mspec/runner/formatters/dotted'
class UnitdiffFormatter < DottedFormatter
diff --git a/spec/mspec/lib/mspec/runner/formatters/yaml.rb b/spec/mspec/lib/mspec/runner/formatters/yaml.rb
index bb98f7931e..6c05cc902f 100644
--- a/spec/mspec/lib/mspec/runner/formatters/yaml.rb
+++ b/spec/mspec/lib/mspec/runner/formatters/yaml.rb
@@ -1,8 +1,7 @@
-require 'mspec/expectations/expectations'
-require 'mspec/runner/formatters/dotted'
+require 'mspec/runner/formatters/base'
-class YamlFormatter < DottedFormatter
- def initialize(out=nil)
+class YamlFormatter < BaseFormatter
+ def initialize(out = nil)
super(nil)
if out.nil?
@@ -16,9 +15,6 @@ class YamlFormatter < DottedFormatter
@out = @finish
end
- def after(state = nil)
- end
-
def finish
switch
diff --git a/spec/mspec/lib/mspec/runner/mspec.rb b/spec/mspec/lib/mspec/runner/mspec.rb
index 75a242bef0..5528f27cf8 100644
--- a/spec/mspec/lib/mspec/runner/mspec.rb
+++ b/spec/mspec/lib/mspec/runner/mspec.rb
@@ -38,7 +38,7 @@ module MSpec
@expectation = nil
@expectations = false
- def self.describe(mod, options=nil, &block)
+ def self.describe(mod, options = nil, &block)
state = ContextState.new mod, options
state.parent = current
@@ -259,7 +259,7 @@ module MSpec
end
end
- def self.randomize(flag=true)
+ def self.randomize(flag = true)
@randomize = flag
end
diff --git a/spec/mspec/lib/mspec/runner/object.rb b/spec/mspec/lib/mspec/runner/object.rb
index a44b8bb361..d5d9650795 100644
--- a/spec/mspec/lib/mspec/runner/object.rb
+++ b/spec/mspec/lib/mspec/runner/object.rb
@@ -1,13 +1,13 @@
class Object
- private def before(at=:each, &block)
+ private def before(at = :each, &block)
MSpec.current.before at, &block
end
- private def after(at=:each, &block)
+ private def after(at = :each, &block)
MSpec.current.after at, &block
end
- private def describe(mod, msg=nil, options=nil, &block)
+ private def describe(mod, msg = nil, options = nil, &block)
MSpec.describe mod, msg, &block
end
diff --git a/spec/mspec/lib/mspec/runner/shared.rb b/spec/mspec/lib/mspec/runner/shared.rb
index b606de473b..1d68365474 100644
--- a/spec/mspec/lib/mspec/runner/shared.rb
+++ b/spec/mspec/lib/mspec/runner/shared.rb
@@ -1,6 +1,6 @@
require 'mspec/runner/mspec'
-def it_behaves_like(desc, meth, obj=nil)
+def it_behaves_like(desc, meth, obj = nil)
send :before, :all do
@method = meth
@object = obj
diff --git a/spec/mspec/lib/mspec/runner/tag.rb b/spec/mspec/lib/mspec/runner/tag.rb
index e2275ad3a6..820df9159e 100644
--- a/spec/mspec/lib/mspec/runner/tag.rb
+++ b/spec/mspec/lib/mspec/runner/tag.rb
@@ -1,7 +1,7 @@
class SpecTag
attr_accessor :tag, :comment, :description
- def initialize(string=nil)
+ def initialize(string = nil)
parse(string) if string
end
diff --git a/spec/mspec/lib/mspec/utils/name_map.rb b/spec/mspec/lib/mspec/utils/name_map.rb
index a93b0d001e..a389b9d1de 100644
--- a/spec/mspec/lib/mspec/utils/name_map.rb
+++ b/spec/mspec/lib/mspec/utils/name_map.rb
@@ -51,7 +51,7 @@ class NameMap
SpecVersion
]
- def initialize(filter=false)
+ def initialize(filter = false)
@seen = {}
@filter = filter
end
@@ -73,7 +73,7 @@ class NameMap
"#{mod}::#{const}"
end
- def map(hash, constants, mod=nil)
+ def map(hash, constants, mod = nil)
@seen = {} unless mod
constants.each do |const|
diff --git a/spec/mspec/lib/mspec/utils/options.rb b/spec/mspec/lib/mspec/utils/options.rb
index 560826a723..af9a9b3f0e 100644
--- a/spec/mspec/lib/mspec/utils/options.rb
+++ b/spec/mspec/lib/mspec/utils/options.rb
@@ -34,7 +34,7 @@ class MSpecOptions
attr_accessor :config, :banner, :width, :options
- def initialize(banner="", width=30, config=nil)
+ def initialize(banner = "", width = 30, config = nil)
@banner = banner
@config = config
@width = width
@@ -123,7 +123,7 @@ class MSpecOptions
# Parses an array of command line entries, calling blocks for
# registered options.
- def parse(argv=ARGV)
+ def parse(argv = ARGV)
argv = Array(argv).dup
while entry = argv.shift
diff --git a/spec/mspec/lib/mspec/utils/script.rb b/spec/mspec/lib/mspec/utils/script.rb
index 9bffa924bc..2545a16bae 100644
--- a/spec/mspec/lib/mspec/utils/script.rb
+++ b/spec/mspec/lib/mspec/utils/script.rb
@@ -149,7 +149,10 @@ class MSpecScript
if config[:formatter].nil?
config[:formatter] = STDOUT.tty? ? SpinnerFormatter : @files.size < 50 ? DottedFormatter : FileFormatter
end
- config[:formatter].new(config[:output])
+
+ if config[:formatter]
+ config[:formatter].new(config[:output])
+ end
end
# Callback for enabling custom actions, etc. This version is a
diff --git a/spec/mspec/spec/integration/run_spec.rb b/spec/mspec/spec/integration/run_spec.rb
index 6703e83150..df10f77094 100644
--- a/spec/mspec/spec/integration/run_spec.rb
+++ b/spec/mspec/spec/integration/run_spec.rb
@@ -37,8 +37,14 @@ EOS
ret.success?.should == false
end
- it "runs the specs in parallel with -j" do
+ it "runs the specs in parallel with -j using the dotted formatter" do
out, ret = run_mspec("run", "-j #{fixtures}/a_spec.rb #{fixtures}/b_spec.rb")
+ out.should == "RUBY_DESCRIPTION\n...\n#{a_spec_output}\n#{ab_stats}"
+ ret.success?.should == false
+ end
+
+ it "runs the specs in parallel with -j -fa" do
+ out, ret = run_mspec("run", "-j -fa #{fixtures}/a_spec.rb #{fixtures}/b_spec.rb")
progress_bar =
"\r[/ | 0% | 00:00:00] \e[0;32m 0F \e[0;32m 0E\e[0m " +
"\r[- | ==================50% | 00:00:00] \e[0;32m 0F \e[0;32m 0E\e[0m " +
diff --git a/spec/mspec/spec/runner/formatters/multi_spec.rb b/spec/mspec/spec/runner/formatters/multi_spec.rb
index 72bf629f71..d0ed8edc93 100644
--- a/spec/mspec/spec/runner/formatters/multi_spec.rb
+++ b/spec/mspec/spec/runner/formatters/multi_spec.rb
@@ -1,6 +1,8 @@
require File.dirname(__FILE__) + '/../../spec_helper'
+require 'mspec/runner/formatters/dotted'
require 'mspec/runner/formatters/multi'
require 'mspec/runner/example'
+require 'yaml'
describe MultiFormatter, "#aggregate_results" do
before :each do
@@ -14,7 +16,7 @@ describe MultiFormatter, "#aggregate_results" do
@hash = { "files"=>1, "examples"=>1, "expectations"=>2, "failures"=>0, "errors"=>0 }
YAML.stub(:load).and_return(@hash)
- @formatter = MultiFormatter.new
+ @formatter = DottedFormatter.new.extend(MultiFormatter)
@formatter.timer.stub(:format).and_return("Finished in 42 seconds")
end