Sha256: a4a1ed4c5b2272712192833480a378762f70333266c1e9e45704d8b3bb7b15e8

Contents?: true

Size: 732 Bytes

Versions: 229

Compression:

Stored size: 732 Bytes

Contents

require 'rake/file_utils_ext'
require 'tmpdir'

class ExerciseTestsRunner
  include Rake::FileUtilsExt

  def initialize(exercise:, test_options: '')
    @exercise = exercise
    @test_options = test_options
  end

  def run
    puts "\n\n#{'-' * 64}\nrunning tests for: #{@exercise}"

    Dir.mktmpdir(@exercise.slug) do |dir|
      setup_exercise_files_in(dir)
      run_exercise_tests_in(dir)
    end
  end

  private

  def setup_exercise_files_in(dir)
    FileUtils.cp_r @exercise.directory, dir
    FileUtils.mv "#{dir}/#{@exercise.example_file}", "#{dir}/#{@exercise.testable_example_file}"
  end

  def run_exercise_tests_in(dir)
    ruby "-I lib -r disable_skip.rb #{dir}/#{@exercise.test_file} #{@test_options}"
  end
end

Version data entries

229 entries across 229 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/ruby/lib/tasks/exercise_tests_runner.rb
trackler-2.2.1.179 tracks/ruby/lib/tasks/exercise_tests_runner.rb
trackler-2.2.1.178 tracks/ruby/lib/tasks/exercise_tests_runner.rb
trackler-2.2.1.177 tracks/ruby/lib/tasks/exercise_tests_runner.rb
trackler-2.2.1.176 tracks/ruby/lib/tasks/exercise_tests_runner.rb
trackler-2.2.1.175 tracks/ruby/lib/tasks/exercise_tests_runner.rb
trackler-2.2.1.174 tracks/ruby/lib/tasks/exercise_tests_runner.rb
trackler-2.2.1.173 tracks/ruby/lib/tasks/exercise_tests_runner.rb
trackler-2.2.1.172 tracks/ruby/lib/tasks/exercise_tests_runner.rb
trackler-2.2.1.171 tracks/ruby/lib/tasks/exercise_tests_runner.rb
trackler-2.2.1.170 tracks/ruby/lib/tasks/exercise_tests_runner.rb
trackler-2.2.1.169 tracks/ruby/lib/tasks/exercise_tests_runner.rb
trackler-2.2.1.167 tracks/ruby/lib/tasks/exercise_tests_runner.rb
trackler-2.2.1.166 tracks/ruby/lib/tasks/exercise_tests_runner.rb
trackler-2.2.1.165 tracks/ruby/lib/tasks/exercise_tests_runner.rb
trackler-2.2.1.164 tracks/ruby/lib/tasks/exercise_tests_runner.rb
trackler-2.2.1.163 tracks/ruby/lib/tasks/exercise_tests_runner.rb
trackler-2.2.1.162 tracks/ruby/lib/tasks/exercise_tests_runner.rb
trackler-2.2.1.161 tracks/ruby/lib/tasks/exercise_tests_runner.rb
trackler-2.2.1.160 tracks/ruby/lib/tasks/exercise_tests_runner.rb