Class: Profiler::TestRunner::Discovery
- Inherits:
-
Object
- Object
- Profiler::TestRunner::Discovery
- Defined in:
- lib/profiler/test_runner/discovery.rb
Constant Summary collapse
- SPEC_GLOB =
"spec/**/*_spec.rb"- TEST_GLOB =
"test/**/*_test.rb"
Class Method Summary collapse
- .files(framework: nil) ⇒ Object
- .frameworks ⇒ Object
- .minitest_available? ⇒ Boolean
- .rspec_available? ⇒ Boolean
Class Method Details
.files(framework: nil) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/profiler/test_runner/discovery.rb', line 16 def self.files(framework: nil) root = defined?(Rails) ? Rails.root.to_s : Dir.pwd result = {} globs = case framework&.to_sym when :rspec then [SPEC_GLOB] when :minitest then [TEST_GLOB] else [SPEC_GLOB, TEST_GLOB] end globs.each do |glob| Dir.glob(File.join(root, glob)).each do |path| relative = path.sub("#{root}/", "") parts = relative.split("/") dir = parts[0..-2].join("/") result[dir] ||= [] result[dir] << { path: relative, name: parts.last } end end result.map do |dir, files| { directory: dir, files: files.sort_by { |f| f[:name] } } end.sort_by { |d| d[:directory] } end |
.frameworks ⇒ Object
9 10 11 12 13 14 |
# File 'lib/profiler/test_runner/discovery.rb', line 9 def self.frameworks frameworks = [] frameworks << :rspec if rspec_available? frameworks << :minitest if minitest_available? frameworks end |
.minitest_available? ⇒ Boolean
50 51 52 53 54 |
# File 'lib/profiler/test_runner/discovery.rb', line 50 def self.minitest_available? defined?(Minitest) || Gem.loaded_specs.key?("minitest") rescue false end |
.rspec_available? ⇒ Boolean
44 45 46 47 48 |
# File 'lib/profiler/test_runner/discovery.rb', line 44 def self.rspec_available? defined?(RSpec) || Gem.loaded_specs.key?("rspec-core") rescue false end |