add rake task to catch all subfolders under /spec

This commit is contained in:
Andy Brett
2021-03-22 16:09:08 -07:00
parent f021e5e074
commit 2fbc5afce6
2 changed files with 29 additions and 3 deletions

View File

@@ -257,7 +257,7 @@ jobs:
run: RAILS_ENV=test bundle exec rake karma:run
- name: Run all other tests
run: bundle exec rspec --profile --pattern "engines/*/spec/{,/*/**}/*_spec.rb,spec/{helpers, initializers, jobs, mailers, queries, requests, services, validators, views}/{,/*/**}/*_spec.rb"
run: bundle exec rake ofn:specs:run:excluding_folders["models,controllers,serializers,features,lib"]
test-the-rest:
runs-on: ubuntu-18.04
@@ -297,5 +297,5 @@ jobs:
bundle exec rake db:create RAILS_ENV=test
bundle exec rake db:schema:load RAILS_ENV=test
- name: Run admin feature folders, serializers, jobs, lib
run: bundle exec rspec --profile --pattern "spec/features/admin/*/*_spec.rb,spec/lib/{,/*/**}/*_spec.rb"
- name: Run admin feature folders, engines, lib
run: bundle exec rspec --profile --pattern "engines/*/spec/{,/*/**}/*_spec.rb,spec/features/admin/*/*_spec.rb,spec/lib/{,/*/**}/*_spec.rb"

View File

@@ -1,5 +1,31 @@
namespace :ofn do
namespace :specs do
namespace :run do
def spec_folders
Pathname("spec/").children.select(&:directory?).map { |p|
p.split.last.to_s
}.reject { |p| %w(support factories javascripts performance).include?(p) }
end
def execute_rspec_for_pattern(pattern)
system "bundle exec rspec --profile --pattern \"#{pattern}\""
end
def execute_rspec_for_spec_folder(folder)
execute_rspec_for_pattern("spec/#{folder}/{,/*/**}/*_spec.rb")
end
def execute_rspec_for_spec_folders(folders)
folders = folders.join(",") if folders.is_a?(Array)
execute_rspec_for_pattern("spec/{#{folders}}/{,/*/**}/*_spec.rb")
end
desc "Run Rspec tests excluding folders"
task :excluding_folders, [:folders] do |_task, args|
execute_rspec_for_spec_folders(spec_folders - (args[:folders].split(",") + args.extras))
end
end
namespace :engines do
def detect_engine_paths
Pathname("engines/").children.select(&:directory?)