     # Finally parse, require and load the files
     test_files   = parse_files(files, test_paths)
     test_pattern = project[:test_pattern] || "*_test.exs"
-
-    case Mix.Utils.extract_files(test_files, test_pattern) do
+    warn_test_pattern = project[:warn_test_pattern] || "*_test.ex"
+
+    matched_test_files = Mix.Utils.extract_files(test_files, test_pattern)
+    matched_warn_test_files = 
+      Mix.Utils.extract_files(test_files, warn_test_pattern) -- matched_test_files
+    
+    display_warn_test_pattern(matched_warn_test_files, test_pattern)
+    
+    case matched_test_files do
       [] ->
         Mix.shell.error "Test patterns did not match any file: " <> Enum.join(files, ", ")
       test_files ->


    * `:test_pattern` - a pattern to load test files, defaults to `*_test.exs`.

    * `:test_coverage` - a set of options to be passed down to the coverage
      mechanism.


        System.at_exit fn _ ->
          if failures > 0, do: exit({:shutdown, 1})
        end
    end
  end

  defp display_warn_test_pattern(files, pattern) do
    for file <- files do
      Mix.shell.info "Warning: #{file} does not match \"#{pattern}\" and won't be run"
    end
  end

