Rake::Task["spec"].clear if Rake::Task.task_defined?("spec") namespace :spec do desc "GitLab | Rspec | Run request specs" task :api do cmds = [ %w[rake gitlab:setup], %w[rspec spec --tag @api], ] run_commands(cmds) end desc "GitLab | Rspec | Run feature specs" task :feature do cmds = [ %w[rake gitlab:setup], %w[rspec spec --tag @feature], ] run_commands(cmds) end desc "GitLab | Rspec | Run model specs" task :models do cmds = [ %w[rake gitlab:setup], %w[rspec spec --tag @models], ] run_commands(cmds) end desc "GitLab | Rspec | Run service specs" task :services do cmds = [ %w[rake gitlab:setup], %w[rspec spec --tag @services], ] run_commands(cmds) end desc "GitLab | Rspec | Run lib specs" task :lib do cmds = [ %w[rake gitlab:setup], %w[rspec spec --tag @lib], ] run_commands(cmds) end desc "GitLab | Rspec | Run other specs" task :other do cmds = [ %w[rake gitlab:setup], %w[rspec spec --tag ~@api --tag ~@feature --tag ~@models --tag ~@lib --tag ~@services], ] run_commands(cmds) end end desc "GitLab | Run specs" task :spec do cmds = [ %w[rake gitlab:setup], %w[rspec spec], ] run_commands(cmds) end def run_commands(cmds) cmds.each do |cmd| system({"RAILS_ENV" => "test", "force" => "yes"}, *cmd) || raise("#{cmd} failed!") end end