DEV: Add --profile and --fail-fast when running plugin specs, tweak parallel test balancing

This commit is contained in:
Penar Musaraj 2019-05-01 22:47:18 -04:00
parent 28547c6f08
commit a5b804fec4
2 changed files with 5 additions and 3 deletions

View File

@ -139,7 +139,8 @@ task 'docker:test' do
spec_partials = Dir["spec/**/*_spec.rb"].sort.in_groups(total, false)
# quick and dirty load balancing
if (spec_partials.count > 3)
spec_partials[0].concat(spec_partials[total - 1].shift(40))
spec_partials[0].concat(spec_partials[total - 1].shift(30))
spec_partials[1].concat(spec_partials[total - 2].shift(30))
end
params << spec_partials[subset].join(' ')
@ -154,7 +155,7 @@ task 'docker:test' do
if ENV["SINGLE_PLUGIN"]
@good &&= run_or_fail("bundle exec rake plugin:spec['#{ENV["SINGLE_PLUGIN"]}']")
else
@good &&= run_or_fail("bundle exec rake plugin:spec")
@good &&= run_or_fail("RSPEC_FAILFAST=1 bundle exec rake plugin:spec")
end
end
puts "travis_fold:end:ruby_tests" if ENV["TRAVIS"]

View File

@ -86,10 +86,11 @@ end
desc 'run plugin specs'
task 'plugin:spec', :plugin do |t, args|
args.with_defaults(plugin: "*")
params = ENV['RSPEC_FAILFAST'] ? '--profile --fail-fast' : '--profile'
ruby = `which ruby`.strip
files = Dir.glob("./plugins/#{args[:plugin]}/spec/**/*_spec.rb")
if files.length > 0
sh "LOAD_PLUGINS=1 #{ruby} -S rspec #{files.join(' ')}"
sh "LOAD_PLUGINS=1 #{ruby} -S rspec #{files.join(' ')} #{params}"
else
abort "No specs found."
end