lib/cucumber/formatter/junit.rb in aslakhellesoy-cucumber-0.3.95 vs lib/cucumber/formatter/junit.rb in aslakhellesoy-cucumber-0.3.96
- old
+ new
@@ -43,12 +43,12 @@
lines = name.split(/\r?\n/)
@feature_name = lines[0].sub(/Feature\:/, '').strip
end
def visit_scenario_name(keyword, name, file_colon_line, source_indent)
- scenario_name = name.strip
- scenario_name = "Unnamed scenario" if name == ""
+ scenario_name = name.strip.delete(".\r\n")
+ scenario_name = "Unnamed scenario" if name.blank?
@scenario = scenario_name
@outline = keyword.include?('Scenario Outline')
@output = "Scenario#{ " outline" if @outline}: #{@scenario}\n\n"
end
@@ -94,19 +94,23 @@
def build_testcase(duration, status, exception = nil, suffix = "")
@time += duration
classname = "#{@feature_name}.#{@scenario}"
name = "#{@scenario}#{suffix}"
- @builder.testcase(:classname => classname, :name => name, :time => "%.6f" % duration) do
- if status != :passed
- @builder.failure(:message => "#{status.to_s} #{name}", :type => status.to_s) do
- @builder.text! @output
- @builder.text!(format_exception(exception)) if exception
+ failed = (status == :failed || (status == :pending && @options[:strict]))
+ #puts "FAILED:!!#{failed}"
+ if status == :passed || failed
+ @builder.testcase(:classname => classname, :name => name, :time => "%.6f" % duration) do
+ if failed
+ @builder.failure(:message => "#{status.to_s} #{name}", :type => status.to_s) do
+ @builder.text! @output
+ @builder.text!(format_exception(exception)) if exception
+ end
+ @failures += 1
end
- @failures += 1
end
+ @tests += 1
end
- @tests += 1
end
def format_exception(exception)
(["#{exception.message} (#{exception.class})"] + exception.backtrace).join("\n")
end