Class: RightDevelop::CI::Formatters::RSpecV1
- Inherits:
-
Spec::Runner::Formatter::BaseTextFormatter
- Object
- Spec::Runner::Formatter::BaseTextFormatter
- RightDevelop::CI::Formatters::RSpecV1
- Defined in:
- lib/right_develop/ci/formatters/rspec_v1.rb
Overview
JUnit XML output formatter for RSpec 1.x
Instance Method Summary collapse
- #dump_failure(counter, failure) ⇒ Object
- #dump_pending ⇒ Object
- #dump_summary(duration, example_count, failure_count, pending_count) ⇒ Object
- #example_failed(example, counter, failure) ⇒ Object
- #example_group_started(example) ⇒ Object
- #example_passed(example) ⇒ Object
- #example_pending(example, message, deprecated_pending_location = nil) ⇒ Object
- #example_started(example) ⇒ Object
-
#initialize(*args) ⇒ RSpecV1
constructor
A new instance of RSpecV1.
Constructor Details
#initialize(*args) ⇒ RSpecV1
Returns a new instance of RSpecV1.
4 5 6 7 8 9 10 11 |
# File 'lib/right_develop/ci/formatters/rspec_v1.rb', line 4 def initialize(*args) super(*args) @current_example_group = nil @test_times = {} @test_groups = {} @test_results = {} @test_failures = {} end |
Instance Method Details
#dump_failure(counter, failure) ⇒ Object
71 72 73 |
# File 'lib/right_develop/ci/formatters/rspec_v1.rb', line 71 def dump_failure(counter, failure) # no-op; our summary contains everything end |
#dump_pending ⇒ Object
75 76 77 |
# File 'lib/right_develop/ci/formatters/rspec_v1.rb', line 75 def dump_pending() # no-op; our summary contains everything end |
#dump_summary(duration, example_count, failure_count, pending_count) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/right_develop/ci/formatters/rspec_v1.rb', line 41 def dump_summary(duration, example_count, failure_count, pending_count) builder = Builder::XmlMarkup.new :indent => 2 builder.instruct! :xml, :version => "1.0", :encoding => "UTF-8" builder.testsuite :errors => 0, :failures => failure_count, :skipped => pending_count, :tests => example_count, :time => duration, :timestamp => Time.now.iso8601 do builder.properties @test_results.each_pair do |test, result| classname = purify(classname_for(test)) full_description = purify(test.description) # The full description always begins with the classname, but this is useless info when # generating the XML report. if full_description.start_with?(classname) full_description = full_description[classname.length..-1].strip end builder.testcase(:classname => classname.to_sym, :name => full_description, :time => @test_times[test]) do case result when "failed" builder.failure :message => "failed #{full_description}", :type => "failed" do builder.cdata! purify(failure_details_for(test)) end when "pending" then builder.skipped end end end end output.puts builder.target! end |
#example_failed(example, counter, failure) ⇒ Object
28 29 30 31 32 33 |
# File 'lib/right_develop/ci/formatters/rspec_v1.rb', line 28 def example_failed(example, counter, failure) @test_groups[example] ||= @current_example_group @test_times[example] = Time.now - @example_started_at @test_results[example] = 'failed' @test_failures[example] = failure end |
#example_group_started(example) ⇒ Object
13 14 15 |
# File 'lib/right_develop/ci/formatters/rspec_v1.rb', line 13 def example_group_started(example) @current_example_group = example end |
#example_passed(example) ⇒ Object
22 23 24 25 26 |
# File 'lib/right_develop/ci/formatters/rspec_v1.rb', line 22 def example_passed(example) @test_groups[example] ||= @current_example_group @test_times[example] = Time.now - @example_started_at @test_results[example] = 'passed' end |
#example_pending(example, message, deprecated_pending_location = nil) ⇒ Object
35 36 37 38 39 |
# File 'lib/right_develop/ci/formatters/rspec_v1.rb', line 35 def example_pending(example, , deprecated_pending_location=nil) @test_groups[example] ||= @current_example_group @test_times[example] = Time.now - @example_started_at @test_results[example] = 'pending' end |
#example_started(example) ⇒ Object
17 18 19 20 |
# File 'lib/right_develop/ci/formatters/rspec_v1.rb', line 17 def example_started(example) @test_groups[example] ||= @current_example_group @example_started_at = Time.now end |