Sha256: ab31258cf5c4578bb74be41165f9b997cf352894cefbeb995ebaa7b54aeb995c

Contents?: true

Size: 1.8 KB

Versions: 215

Compression:

Stored size: 1.8 KB

Contents

require 'spec_helper'

describe ParallelizedSpecs::SpecRuntimeLogger do
  before do
    # pretend we run in parallel or the logger will log nothing
    ENV['TEST_ENV_NUMBER'] = ''
    @clean_output = %r{^spec/foo.rb:[-\.e\d]+$}m
  end

  after do
    ENV.delete 'TEST_ENV_NUMBER'
  end

  def log_for_a_file(options={})
    Tempfile.open('xxx') do |temp|
      temp.close
      f = File.open(temp.path,'w')
      logger = if block_given?
        yield(f)
      else
        ParallelizedSpecs::SpecRuntimeLogger.new(f)
      end

      example = (mock(:location => "#{Dir.pwd}/spec/foo.rb:123"))
      logger.example_started example
      logger.example_passed example
      if options[:pending]
        logger.example_pending example
        logger.dump_pending
      end
      if options[:failed]
        logger.example_failed example
        logger.dump_failures
      end
      logger.start_dump

      #f.close
      return File.read(f.path)
    end
  end

  it "logs runtime with relative paths" do
    log_for_a_file.should =~ @clean_output
  end

  it "does not log pending" do
    log_for_a_file(:pending => true).should =~ @clean_output
  end

  it "does not log failures" do
    log_for_a_file(:failed => true).should =~ @clean_output
  end

  it "does not log if we do not run in parallel" do
    ENV.delete 'TEST_ENV_NUMBER'
    log_for_a_file.should == ""
  end

  it "appends to a given file" do
    result = log_for_a_file do |f|
      f.write 'FooBar'
      ParallelizedSpecs::SpecRuntimeLogger.new(f)
    end
    result.should include('FooBar')
    result.should include('foo.rb')
  end

  it "overwrites a given path" do
    result = log_for_a_file do |f|
      f.write 'FooBar'
      ParallelizedSpecs::SpecRuntimeLogger.new(f.path)
    end
    result.should_not include('FooBar')
    result.should include('foo.rb')
  end
end

Version data entries

215 entries across 215 versions & 1 rubygems

Version Path
parallelized_specs-0.4.84 spec/parallelized_specs/spec_runtime_logger_spec.rb
parallelized_specs-0.4.83 spec/parallelized_specs/spec_runtime_logger_spec.rb
parallelized_specs-0.4.82 spec/parallelized_specs/spec_runtime_logger_spec.rb
parallelized_specs-0.4.81 spec/parallelized_specs/spec_runtime_logger_spec.rb
parallelized_specs-0.4.80 spec/parallelized_specs/spec_runtime_logger_spec.rb
parallelized_specs-0.4.79 spec/parallelized_specs/spec_runtime_logger_spec.rb
parallelized_specs-0.4.78 spec/parallelized_specs/spec_runtime_logger_spec.rb
parallelized_specs-0.4.77 spec/parallelized_specs/spec_runtime_logger_spec.rb
parallelized_specs-0.4.76 spec/parallelized_specs/spec_runtime_logger_spec.rb
parallelized_specs-0.4.75 spec/parallelized_specs/spec_runtime_logger_spec.rb
parallelized_specs-0.4.74 spec/parallelized_specs/spec_runtime_logger_spec.rb
parallelized_specs-0.4.73 spec/parallelized_specs/spec_runtime_logger_spec.rb
parallelized_specs-0.4.72 spec/parallelized_specs/spec_runtime_logger_spec.rb
parallelized_specs-0.4.71 spec/parallelized_specs/spec_runtime_logger_spec.rb
parallelized_specs-0.4.70 spec/parallelized_specs/spec_runtime_logger_spec.rb
parallelized_specs-0.4.69 spec/parallelized_specs/spec_runtime_logger_spec.rb
parallelized_specs-0.4.68 spec/parallelized_specs/spec_runtime_logger_spec.rb
parallelized_specs-0.4.67 spec/parallelized_specs/spec_runtime_logger_spec.rb
parallelized_specs-0.4.66 spec/parallelized_specs/spec_runtime_logger_spec.rb
parallelized_specs-0.4.65 spec/parallelized_specs/spec_runtime_logger_spec.rb