The formatter used for --format junit
# File lib/cucumber/formatter/junit.rb, line 48 48: def after_background(*args) 49: @in_background = false 50: end
# File lib/cucumber/formatter/junit.rb, line 88 88: def after_examples(*args) 89: @in_examples = false 90: end
# File lib/cucumber/formatter/junit.rb, line 29 29: def after_feature(feature) 30: @testsuite = OrderedXmlMarkup.new( :indent => 2 ) 31: @testsuite.instruct! 32: @testsuite.testsuite( 33: :failures => @failures, 34: :errors => @errors, 35: :tests => @tests, 36: :time => "%.6f" % @time, 37: :name => @feature_name ) do 38: @testsuite << @builder.target! 39: end 40: 41: write_file(feature_result_filename(feature.file), @testsuite.target!) 42: end
# File lib/cucumber/formatter/junit.rb, line 72 72: def after_steps(steps) 73: return if @in_background || @in_examples 74: 75: duration = Time.now - @steps_start 76: if steps.failed? 77: steps.each { |step| @output += "#{step.keyword}#{step.name}\n" } 78: @output += "\nMessage:\n" 79: end 80: build_testcase(duration, steps.status, steps.exception) 81: end
# File lib/cucumber/formatter/junit.rb, line 98 98: def after_table_row(table_row) 99: return unless @in_examples 100: duration = Time.now - @table_start 101: unless @header_row 102: name_suffix = " (outline example : #{table_row.name})" 103: if table_row.failed? 104: @output += "Example row: #{table_row.name}\n" 105: @output += "\nMessage:\n" 106: end 107: build_testcase(duration, table_row.status, table_row.exception, name_suffix) 108: end 109: 110: @header_row = false if @header_row 111: end
# File lib/cucumber/formatter/junit.rb, line 44 44: def before_background(*args) 45: @in_background = true 46: end
# File lib/cucumber/formatter/junit.rb, line 83 83: def before_examples(*args) 84: @header_row = true 85: @in_examples = true 86: end
# File lib/cucumber/formatter/junit.rb, line 22 22: def before_feature(feature) 23: @current_feature = feature 24: @failures = @errors = @tests = 0 25: @builder = OrderedXmlMarkup.new( :indent => 2 ) 26: @time = 0 27: end
# File lib/cucumber/formatter/junit.rb, line 68 68: def before_steps(steps) 69: @steps_start = Time.now 70: end
# File lib/cucumber/formatter/junit.rb, line 92 92: def before_table_row(table_row) 93: return unless @in_examples 94: 95: @table_start = Time.now 96: end
# File lib/cucumber/formatter/junit.rb, line 52 52: def feature_name(keyword, name) 53: raise UnNamedFeatureError.new(@current_feature.file) if name.empty? 54: lines = name.split(/\r?\n/) 55: @feature_name = lines[0] 56: end
# File lib/cucumber/formatter/junit.rb, line 58 58: def scenario_name(keyword, name, file_colon_line, source_indent) 59: # TODO: What's all this ugly weird code doing? Why not just use keyword and name???? 60: scenario_name = name.strip.delete(".\r\n") 61: scenario_name = "Unnamed scenario" if name == "" 62: @scenario = scenario_name 63: description = "Scenario" 64: description << " outline" if keyword.include?('Scenario Outline') 65: @output = "#{description}: #{@scenario}\n\n" 66: end
# File lib/cucumber/formatter/junit.rb, line 115 115: def build_testcase(duration, status, exception = nil, suffix = "") 116: @time += duration 117: classname = "#{@feature_name}.#{@scenario}" 118: name = "#{@scenario}#{suffix}" 119: failed = (status == :failed || (status == :pending && @options[:strict])) 120: #puts "FAILED:!!#{failed}" 121: if status == :passed || failed 122: @builder.testcase(:classname => classname, :name => name, :time => "%.6f" % duration) do 123: if failed 124: @builder.failure(:message => "#{status.to_s} #{name}", :type => status.to_s) do 125: @builder.text! @output 126: @builder.text!(format_exception(exception)) if exception 127: end 128: @failures += 1 129: end 130: end 131: @tests += 1 132: end 133: end
# File lib/cucumber/formatter/junit.rb, line 139 139: def feature_result_filename(feature_file) 140: ext_length = File.extname(feature_file).length 141: basename = File.basename(feature_file)[0...-ext_length] 142: File.join(@reportdir, "TEST-#{basename}.xml") 143: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.