]> git.openstreetmap.org Git - rails.git/blobdiff - vendor/gems/rspec-1.1.2/lib/spec/runner/formatter/base_formatter.rb
added RSpec and RSpec on Rails
[rails.git] / vendor / gems / rspec-1.1.2 / lib / spec / runner / formatter / base_formatter.rb
diff --git a/vendor/gems/rspec-1.1.2/lib/spec/runner/formatter/base_formatter.rb b/vendor/gems/rspec-1.1.2/lib/spec/runner/formatter/base_formatter.rb
new file mode 100644 (file)
index 0000000..c8647cf
--- /dev/null
@@ -0,0 +1,78 @@
+module Spec
+  module Runner
+    module Formatter
+      # Baseclass for formatters that implements all required methods as no-ops. 
+      class BaseFormatter
+        attr_accessor :example_group, :options, :where
+        def initialize(options, where)
+          @options = options
+          @where = where
+        end
+        
+        # This method is invoked before any examples are run, right after
+        # they have all been collected. This can be useful for special
+        # formatters that need to provide progress on feedback (graphical ones)
+        #
+        # This method will only be invoked once, and the next one to be invoked
+        # is #add_example_group
+        def start(example_count)
+        end
+
+        # This method is invoked at the beginning of the execution of each example_group.
+        # +name+ is the name of the example_group and +first+ is true if it is the
+        # first example_group - otherwise it's false.
+        #
+        # The next method to be invoked after this is #example_failed or #example_finished
+        def add_example_group(example_group)
+          @example_group = example_group
+        end
+
+        # This method is invoked when an +example+ starts.
+        def example_started(example)
+        end
+
+        # This method is invoked when an +example+ passes.
+        def example_passed(example)
+        end
+
+        # This method is invoked when an +example+ fails, i.e. an exception occurred
+        # inside it (such as a failed should or other exception). +counter+ is the 
+        # sequence number of the failure (starting at 1) and +failure+ is the associated 
+        # Failure object.
+        def example_failed(example, counter, failure)
+        end
+        
+        # This method is invoked when an example is not yet implemented (i.e. has not
+        # been provided a block), or when an ExamplePendingError is raised.
+        # +message+ is the message from the ExamplePendingError, if it exists, or the
+        # default value of "Not Yet Implemented"
+        def example_pending(example_group_description, example, message)
+        end
+
+        # This method is invoked after all of the examples have executed. The next method
+        # to be invoked after this one is #dump_failure (once for each failed example),
+        def start_dump
+        end
+
+        # Dumps detailed information about an example failure.
+        # This method is invoked for each failed example after all examples have run. +counter+ is the sequence number
+        # of the associated example. +failure+ is a Failure object, which contains detailed
+        # information about the failure.
+        def dump_failure(counter, failure)
+        end
+      
+        # This method is invoked after the dumping of examples and failures.
+        def dump_summary(duration, example_count, failure_count, pending_count)
+        end
+        
+        # This gets invoked after the summary if option is set to do so.
+        def dump_pending
+        end
+
+        # This method is invoked at the very end. Allows the formatter to clean up, like closing open streams.
+        def close
+        end
+      end
+    end
+  end
+end