Move rake tasks into the "tasks" folder to clarify what they do.

This commit is contained in:
Mitchell Hashimoto 2011-11-13 12:37:04 -08:00
parent b62d7c317c
commit 0ccdb79f9a
4 changed files with 68 additions and 58 deletions

View File

@ -1,62 +1,13 @@
require 'rubygems'
require 'bundler/setup'
require 'rake/testtask'
require 'rspec/core/rake_task'
Bundler::GemHelper.install_tasks
# Load all the rake tasks from the "tasks" folder. This folder
# allows us to nicely separate rake tasks into individual files
# based on their role, which makes development and debugging easier
# than one monolithic file.
task_dir = File.expand_path("../tasks", __FILE__)
Dir["#{task_dir}/**/*.rake"].each do |task_file|
load task_file
end
task :default => "test:unit"
namespace :test do
Rake::TestTask.new do |t|
t.name = "unit"
t.libs << "test/unit"
t.pattern = "test/unit/**/*_test.rb"
end
RSpec::Core::RakeTask.new do |t|
t.name = "acceptance"
t.pattern = "test/acceptance/**/*_test.rb"
end
end
namespace :acceptance do
desc "Generates the configuration for acceptance tests from current source."
task :config do
require 'yaml'
require 'posix-spawn'
require File.expand_path("../lib/vagrant/version", __FILE__)
require File.expand_path('../test/acceptance/support/tempdir', __FILE__)
# Generate the binstubs for the Vagrant binary
tempdir = Tempdir.new
pid, stdin, stdout, stderr =
POSIX::Spawn.popen4("bundle", "install", "--binstubs", tempdir.path)
pid, status = Process.waitpid2(pid)
if status.exitstatus != 0
# Bundle install failed...
puts "Bundle install failed! Error:"
puts stderr.read
exit 1
end
# Generate the actual configuration
config = {
"vagrant_path" => File.join(tempdir.path, "vagrant"),
"vagrant_version" => Vagrant::VERSION,
"env" => {
"BUNDLE_GEMFILE" => File.expand_path("../Gemfile", __FILE__)
}
}
File.open("acceptance_config.yml", "w+") do |f|
f.write(YAML.dump(config))
end
puts <<-OUTPUT
Acceptance test configuration is now in this directory in
"acceptance_config.yml." Set your ACCEPTANCE_CONFIG environmental
variable to this file and run any of the acceptance tests now.
OUTPUT
end
end

41
tasks/acceptance.rake Normal file
View File

@ -0,0 +1,41 @@
namespace :acceptance do
desc "Generates the configuration for acceptance tests from current source."
task :config do
require 'yaml'
require 'posix-spawn'
require File.expand_path("../lib/vagrant/version", __FILE__)
require File.expand_path('../test/acceptance/support/tempdir', __FILE__)
# Generate the binstubs for the Vagrant binary
tempdir = Tempdir.new
pid, stdin, stdout, stderr =
POSIX::Spawn.popen4("bundle", "install", "--binstubs", tempdir.path)
pid, status = Process.waitpid2(pid)
if status.exitstatus != 0
# Bundle install failed...
puts "Bundle install failed! Error:"
puts stderr.read
exit 1
end
# Generate the actual configuration
config = {
"vagrant_path" => File.join(tempdir.path, "vagrant"),
"vagrant_version" => Vagrant::VERSION,
"env" => {
"BUNDLE_GEMFILE" => File.expand_path("../Gemfile", __FILE__)
}
}
File.open("acceptance_config.yml", "w+") do |f|
f.write(YAML.dump(config))
end
puts <<-OUTPUT
Acceptance test configuration is now in this directory in
"acceptance_config.yml." Set your ACCEPTANCE_CONFIG environmental
variable to this file and run any of the acceptance tests now.
OUTPUT
end
end

3
tasks/bundler.rake Normal file
View File

@ -0,0 +1,3 @@
# This installs the tasks that help with gem creation and
# publishing.
Bundler::GemHelper.install_tasks

15
tasks/test.rake Normal file
View File

@ -0,0 +1,15 @@
require 'rake/testtask'
require 'rspec/core/rake_task'
namespace :test do
Rake::TestTask.new do |t|
t.name = "unit"
t.libs << "test/unit"
t.pattern = "test/unit/**/*_test.rb"
end
RSpec::Core::RakeTask.new do |t|
t.name = "acceptance"
t.pattern = "test/acceptance/**/*_test.rb"
end
end