require 'bundler/gem_tasks' require 'rspec/core/rake_task' require 'rake/clean' ENV['folder'] ||= '' ENV['test'] ||= '' RSpec::Core::RakeTask.new(:run_spec) do |t| t.pattern = "spec/**/#{ENV['folder']}*/#{ENV['test']}*_spec.rb" t.exclude_pattern = 'spec/exe/*_spec.rb' end RSpec::Core::RakeTask.new(exe_spec: %i[start_test_server]) do |t| t.pattern = 'spec/exe/*_spec.rb' end desc 'Run tests' task spec: %w[clean clobber start_test_server run_spec] task default: :spec CLEAN.include 'tmp/*' CLOBBER.include 'logs/*' desc 'Start virtual web service' task :start_test_server do mkdir_p 'logs' ENV['test_server_pid'] = Process.spawn('ruby', 'exe/soaspec-virtual-server', err: %w[logs/test_server.log w]).to_s sleep 2 # Wait a little for virtual server to start up puts 'Running test server at pid ' + ENV['test_server_pid'] end