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