lib/flores/rspec/analyze.rb in flores-0.0.3 vs lib/flores/rspec/analyze.rb in flores-0.0.4
- old
+ new
@@ -83,37 +83,52 @@
def total
@results.reduce(0) { |m, (_, v)| m + v.length }
end # def total
def success_count
- if @results.include?(:success)
- @results[:success].length
+ if @results.include?(:passed)
+ @results[:passed].length
else
0
end
end # def success_count
+ def success_and_pending_count
+ count = 0
+ [:passed, :pending].each do |group|
+ count += @results[group].length
+ end
+ count
+ end # def success_count
+
def percent(count)
return (count + 0.0) / total
end # def percent
def percent_s(count)
return format("%.2f%%", percent(count) * 100)
end # def percent_s
- def to_s
+ def to_s # rubocop:disable Metrics/AbcSize
# This method is crazy complex for a formatter. Should refactor this significantly.
- report = ["#{percent_s(success_count)} tests successful of #{total} tests"]
- report += failure_summary if success_count < total
+ report = []
+ if @results[:pending].any?
+ # We have pending examples, put a clear message.
+ report << "#{percent_s(success_and_pending_count)} (of #{total} total) tests are successful or pending"
+ else
+ report << "#{percent_s(success_count)} (of #{total} total) tests are successful"
+ end
+ report += failure_summary if success_and_pending_count < total
report.join("\n")
end # def to_s
# TODO(sissel): All these report/summary/to_s things are an indication that the
# report formatting belongs in a separate class.
def failure_summary
report = ["Failure analysis:"]
report += @results.sort_by { |_, v| -v.length }.collect do |group, instances|
- next if group == :success
+ next if group == :passed
+ next if group == :pending
error_report(group, instances)
end.reject(&:nil?).flatten
report
end # def failure_summary