module Fivemat

def self.new(*args)

def self.new(*args)
  case args.size
  when 0 then MiniTest::Unit
  when 1 then
    if rspec3?
      RSpec3
    else
      RSpec
    end
  when 2 then Spec
  when 3 then Cucumber
  else
    raise ArgumentError
  end.new(*args)
end

def rspec3?

def rspec3?
  defined?(::RSpec::Core) && ::RSpec::Core::Version::STRING >= '3.0.0'
end