Sha256: 3a0548bd87db48a133ba8576ef7d66d0ce2956c83b54653c1b90bc40e59931dc

Contents?: true

Size: 1.13 KB

Versions: 5

Compression:

Stored size: 1.13 KB

Contents

require 'guard/rspec'
require 'rspec/core/formatters/base_formatter'

module Guard
  class RSpec
    class Formatter < ::RSpec::Core::Formatters::BaseFormatter
      TEMPORARY_FILE_PATH = './tmp/rspec_guard_result'

      # Write summary to temporary file for runner
      def dump_summary(duration, total, failures, pending)
        FileUtils.mkdir_p('tmp')
        File.open(TEMPORARY_FILE_PATH, 'w') do |f|
          f.puts _message(total, failures, pending, duration)
          f.puts _failed_paths.join("\n") if failures > 0
        end
      rescue
        # nothing really we can do, at least don't kill the test runner
      end

      private

      def _failed_paths
        failed = examples.select { |e| e.execution_result[:status] == 'failed' }
        failed.map { |e| e.metadata[:location] }
      end

      def _message(example_count, failure_count, pending_count, duration)
        message = "#{example_count} examples, #{failure_count} failures"
        if pending_count > 0
          message << " (#{pending_count} pending)"
        end
        message << " in #{duration.round(4)} seconds"
        message
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
guard-rspec-4.2.3 lib/guard/rspec/formatter.rb
guard-rspec-4.2.2 lib/guard/rspec/formatter.rb
guard-rspec-4.2.1 lib/guard/rspec/formatter.rb
guard-rspec-4.2.0 lib/guard/rspec/formatter.rb
guard-rspec-4.1.1 lib/guard/rspec/formatter.rb