Sha256: 282f7a16ba73ce7c1856cdd430ee09f06d3a0bd426514de6d00099f915bfac4d

Contents?: true

Size: 1.79 KB

Versions: 13

Compression:

Stored size: 1.79 KB

Contents

require 'spec_helper'

describe ParallelSpecs::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
        ParallelSpecs::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'
      ParallelSpecs::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'
      ParallelSpecs::SpecRuntimeLogger.new(f.path)
    end
    result.should_not include('FooBar')
    result.should include('foo.rb')
  end
end

Version data entries

13 entries across 13 versions & 3 rubygems

Version Path
parallelized_specs-0.0.1 spec/parallel_specs/spec_runtime_logger_spec.rb
parallel_tests-0.6.20 spec/parallel_specs/spec_runtime_logger_spec.rb
parallel_tests-instructure-0.6.19 spec/parallel_specs/spec_runtime_logger_spec.rb
parallel_tests-0.6.19 spec/parallel_specs/spec_runtime_logger_spec.rb
parallel_tests-0.6.18 spec/parallel_specs/spec_runtime_logger_spec.rb
parallel_tests-instructure-0.6.18 spec/parallel_specs/spec_runtime_logger_spec.rb
parallel_tests-0.6.17 spec/parallel_specs/spec_runtime_logger_spec.rb
parallel_tests-instructure-0.6.17 spec/parallel_specs/spec_runtime_logger_spec.rb
parallel_tests-instructure-0.6.16 spec/parallel_specs/spec_runtime_logger_spec.rb
parallel_tests-0.6.16 spec/parallel_specs/spec_runtime_logger_spec.rb
parallel_tests-0.6.15 spec/parallel_specs/spec_runtime_logger_spec.rb
parallel_tests-0.6.14 spec/parallel_specs/spec_runtime_logger_spec.rb
parallel_tests-0.6.13 spec/parallel_specs/spec_runtime_logger_spec.rb