       end
     end
 
-    if mismatch, do: { :ok, mismatch }, else: :error
+    if mismatch, do: { :error, mismatch }, else: :ok
   end
 
   defp pruned_stacktrace, do: prune_stacktrace(System.stacktrace)

  defp run_test(config, test, context) do
    config.formatter.test_started(config.formatter_id, test)

    mismatch = filter_mismatch(config, test)

    if match?(:error, mismatch) do
      test = spawn_test(config, test, context)
    else
      { :ok, mismatched_tag } = mismatch
      test = skip_test(test, mismatched_tag)
    end


    end
  end

  defp filter_match(config, test) do
    mismatch = Enum.find_value config.filter, fn { tag, value, exclude } ->
      case Keyword.fetch(test.tags, tag) do
        { :ok, ^value } -> exclude && tag
