module SimpleCov::CommandGuesser

Helper that tries to find out what test suite is running (for SimpleCov.command_name)

Attributes

original_run_command[RW]

Storage for the original command line call that invoked the test suite. This has got to be stored as early as possible because i.e. rake and test/unit 2 have a habit of tampering with ARGV, which makes i.e. the automatic distinction between rails unit/functional/integration tests impossible without this cached item.

Public Class Methods

guess() click to toggle source
# File lib/simplecov/command_guesser.rb, line 13
def guess
  from_env || from_command_line_options || from_defined_constants
end

Private Class Methods

from_command_line_options() click to toggle source
# File lib/simplecov/command_guesser.rb, line 28
def from_command_line_options
  case original_run_command
    when /test\/functional\//, /test\/{.*?functional.*?}\//
      "Functional Tests"
    when /test\/integration\//
      "Integration Tests"
    when /test\//
      "Unit Tests"
    when /spec/
      "RSpec"
    when /cucumber/, /features/
      "Cucumber Features"
    else
      nil
  end
end
from_defined_constants() click to toggle source
# File lib/simplecov/command_guesser.rb, line 45
def from_defined_constants
  # If the command regexps fail, let's try checking defined constants.
  if defined?(RSpec)
    "RSpec"
  elsif defined?(Test::Unit)
    "Unit Tests"
  elsif defined?(MiniTest)
    "MiniTest"
  else
    # TODO: Provide link to docs/wiki article
    warn "SimpleCov failed to recognize the test framework and/or suite used. Please specify manually using SimpleCov.command_name 'Unit Tests'."
    'Unknown Test Framework'
  end
end
from_env() click to toggle source
# File lib/simplecov/command_guesser.rb, line 19
def from_env
  # If being run from inside parallel_tests set the command name according to the process number
  if ENV['PARALLEL_TEST_GROUPS'] && ENV['TEST_ENV_NUMBER']
    number = ENV['TEST_ENV_NUMBER']
    number = '1' if number == ''
    "(#{number}/#{ENV['PARALLEL_TEST_GROUPS']})"
  end
end