Sha256: f46338ded3529e1947756abb459c68775c92d7ca20fbfcdb225a52db33fd103f

Contents?: true

Size: 1.79 KB

Versions: 3

Compression:

Stored size: 1.79 KB

Contents

require 'spec_helper'

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

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
parallel_tests-0.7.0.rc1 spec/parallel_tests/spec/runtime_logger_spec.rb
parallel_tests-0.7.0.alpha2 spec/parallel_tests/spec/runtime_logger_spec.rb
parallel_tests-0.7.0.alpha spec/parallel_tests/spec/runtime_logger_spec.rb