core: Getting ready to run vagrant-spec acceptance suite
This commit is contained in:
parent
36f7daa528
commit
37ffd4e477
3 changed files with 50 additions and 15 deletions
9
Gemfile
9
Gemfile
|
@ -23,8 +23,9 @@ end
|
|||
|
||||
group :plugins do
|
||||
gem 'vagrant-lxc', path: '.'
|
||||
# TODO: Disable these plugins when running acceptance specs
|
||||
gem 'vagrant-cachier', git: 'https://github.com/fgrehm/vagrant-cachier.git'
|
||||
gem 'vagrant-pristine', git: 'https://github.com/fgrehm/vagrant-pristine.git'
|
||||
gem 'vagrant-omnibus'
|
||||
if ENV['ACCEPTANCE'] != 'true'
|
||||
gem 'vagrant-cachier', git: 'https://github.com/fgrehm/vagrant-cachier.git'
|
||||
gem 'vagrant-pristine', git: 'https://github.com/fgrehm/vagrant-pristine.git'
|
||||
gem 'vagrant-omnibus'
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,7 +3,7 @@ begin
|
|||
require 'coveralls/rake/task'
|
||||
|
||||
desc 'Run all specs'
|
||||
task :spec => ['spec:unit', 'spec:acceptance']
|
||||
task :spec => ['spec:set_coverage', 'spec:unit', 'spec:acceptance']
|
||||
|
||||
desc 'Default task which runs all specs with code coverage enabled'
|
||||
task :default => ['spec:set_coverage', 'spec:unit']
|
||||
|
@ -17,17 +17,24 @@ namespace :spec do
|
|||
ENV['COVERAGE'] = 'true'
|
||||
end
|
||||
|
||||
def types
|
||||
dirs = Dir['./spec/**/*_spec.rb'].map { |f| f.sub(/^\.\/(spec\/\w+)\/.*/, '\\1') }.uniq
|
||||
Hash[dirs.map { |d| [d.split('/').last, d] }]
|
||||
desc 'Run acceptance specs using vagrant-spec'
|
||||
task :acceptance do
|
||||
components = %w(
|
||||
basic
|
||||
network/forwarded_port
|
||||
synced_folder
|
||||
synced_folder/nfs
|
||||
synced_folder/rsync
|
||||
provisioner/shell
|
||||
provisioner/puppet
|
||||
provisioner/chef-solo
|
||||
package
|
||||
).map{|s| "provider/lxc/#{s}" }
|
||||
sh "export ACCEPTANCE=true && bundle exec vagrant-spec test --components=#{components.join(' ')}"
|
||||
end
|
||||
types.each do |type, dir|
|
||||
desc "Run the code examples in #{dir}"
|
||||
RSpec::Core::RakeTask.new(type) do |t|
|
||||
# Tells rspec-fire to verify if constants used really exist
|
||||
ENV['VERIFY_CONSTANT_NAMES'] = '1'
|
||||
|
||||
t.pattern = "./#{dir}/**/*_spec.rb"
|
||||
end
|
||||
desc "Run unit specs with rspec"
|
||||
RSpec::Core::RakeTask.new(:unit) do |t|
|
||||
t.pattern = "./unit/**/*_spec.rb"
|
||||
end
|
||||
end
|
||||
|
|
27
vagrant-spec.config.rb
Normal file
27
vagrant-spec.config.rb
Normal file
|
@ -0,0 +1,27 @@
|
|||
unless ENV['USER'] == 'vagrant'
|
||||
puts 'Acceptance specs are supposed to run from one of the vagrant-lxc dev machines'
|
||||
exit 1
|
||||
end
|
||||
|
||||
# if defined? SimpleCov
|
||||
# SimpleCov.command_name 'acceptance'
|
||||
# end
|
||||
|
||||
if ENV['BOX_PATH'] == nil
|
||||
latest = ENV.fetch('LATEST_BOXES','2014-03-11')
|
||||
release = ENV.fetch('RELEASE', 'precise')
|
||||
local_path ="#{File.expand_path("../", __FILE__)}/boxes/output/#{latest}/vagrant-lxc-#{release}-amd64.box"
|
||||
if File.exists?(local_path)
|
||||
ENV['BOX_PATH'] = local_path
|
||||
else
|
||||
raise 'Set $BOX_PATH to the latest released boxes'
|
||||
end
|
||||
end
|
||||
|
||||
Vagrant::Spec::Acceptance.configure do |c|
|
||||
c.component_paths << "spec/acceptance"
|
||||
|
||||
c.provider 'lxc',
|
||||
box: ENV['BOX_PATH'],
|
||||
features: ['!suspend']
|
||||
end
|
Loading…
Reference in a new issue