require 'rspec/core/rake_task' require 'rspec/parts'
if defined?(RSpec)
namespace :spec do desc 'Run part M of N specs' RSpec::Core::RakeTask.new(:part, :part, :groups) do |task, task_args| config = Rspec::Parts.config groups = task_args[:groups].to_i == 0 ? config.default_number_of_parts : task_args[:groups].to_i part = (task_args[:part].to_i == 0 ? 1 : task_args[:part].to_i) part_index = part - 1 puts "Running part #{part} of #{groups} groups" file_list = Rspec::Parts::FileList.from(glob: config.spec_directory_glob, groups: groups, part: part_index) config.file_list_exclusions.each do |exclusion| file_list.exclude(exclusion) end task.rspec_opts = config.rspec_opts task.pattern = file_list end end
end