       skipped_counter: 0,
       invalid_counter: 0
     }
+
     {:ok, config}
   end
 

    if colors[:enabled] do
      [escape, string, :reset]
      |> IO.ANSI.format_fragment(true)
      |> IO.iodata_to_binary
    else
      string
    end


    message =
      "#{test_type_counts}#{config.failure_counter} #{failure_pl}"
      |> if_true(config.skipped_counter > 0, &(&1 <> ", #{config.skipped_counter} skipped"))
      |> if_true(config.invalid_counter > 0, &(&1 <> ", #{config.invalid_counter} invalid"))

    cond do
      config.failure_counter > 0 -> IO.puts(failure(message, config))
      config.invalid_counter > 0 -> IO.puts(invalid(message, config))
      true -> IO.puts(success(message, config))
    end

    IO.puts("\nRandomized with seed #{config.seed}")
  end

  defp if_true(value, false, _fun), do: value
  defp if_true(value, true, fun), do: fun.(value)

  defp print_filters(include: [], exclude: []) do
    :ok
  end

  defp print_filters(include: include, exclude: exclude) do
    if include != [], do: IO.puts(format_filters(include, :include))
    if exclude != [], do: IO.puts(format_filters(exclude, :exclude))
    IO.puts("")
    :ok
  end

  defp print_failure(formatted, config) do
    cond do
      config.trace -> IO.puts("")
      true -> IO.puts("\n")
    end

    IO.puts(formatted)
  end

  defp format_test_type_counts(%{test_counter: test_counter} = _config) do
    Enum.map(test_counter, fn {type, count} ->
      type_pluralized = pluralize(count, type, ExUnit.plural_rule(type |> to_string()))
      "#{count} #{type_pluralized}, "
    end)
  end

  # Color styles
