Sha256: 545044390c3f2edf4b3c947c9f771d5ef414e08715ad197dbeb15880b41bece0

Contents?: true

Size: 1.29 KB

Versions: 1

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

# Provides the result of running an integration test.
#
# @api private
class TestRunner

  # @param (see #initialize)
  # @return [void]
  def self.result(testcase, filename)
    new(testcase, filename).result
  end

  # @param testcase [String]
  # @param filename [String]
  # @return [TestRunner]
  def initialize(testcase, filename)
    @testcase = testcase
    @filename     = filename
  end

  # @return [void]
  def result
    print "\e[36m#{filename}: "
    if expected == actual
      print "\e[32mPassed.\e[39m\n"
      exit 0;
    else
      print "\e[31mFailed.\e[39m\n"
      puts "\e[33mExpected:\e[39m"
      puts expected.inspect
      puts "\e[34mActual:\e[39m"
      puts actual.inspect
      exit 1;
    end
  end

  protected

  # @!attribute [r] testcase
  # @return [String]
  attr_reader :testcase

  # @!attribute [r] filename
  # @return [String]
  attr_reader :filename

  private

  # @return [String]
  def actual
    @_actual ||= File.read(actual_path)
  end

  # @return [String]
  def expected
    @_expected ||= File.read(File.expand_path(expected_path, filename))
  end

  # @return [String]
  def actual_path
    Dir.tmpdir + "/#{testcase}.out"
  end

  # @return [String]
  def expected_path
    "../expected/#{testcase}.out"
  end

end # TestRunner

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vedeu-0.8.22 integrations/test_runner.rb