Skip to content

Commit f983b9c

Browse files
authored
Add more color configuration to ExUnit CLI formatter (#12208)
1 parent b39f0e3 commit f983b9c

File tree

2 files changed

+27
-10
lines changed

2 files changed

+27
-10
lines changed

lib/ex_unit/lib/ex_unit.ex

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,14 @@ defmodule ExUnit do
235235
236236
* `:colors` - a keyword list of color options to be used by some formatters:
237237
* `:enabled` - boolean option to enable colors, defaults to `IO.ANSI.enabled?/0`;
238+
239+
* `:success` - success message (defaults to `:green`)
240+
* `:invalid` - invalid test message (defaults to `:yellow`)
241+
* `:skipped` - skipped test message (defaults to `:yellow`)
242+
* `:failure` - failed test message (defaults to `:red`)
243+
* `:error_info` - display of actual error (defaults to `:red`)
244+
* `:extra_info` - additional information (defaults to `:cyan`)
245+
* `:location_info` - filename and tags (defaults to `[:bright, :black]`)
238246
* `:diff_insert` - color of the insertions on diffs, defaults to `:green`;
239247
* `:diff_insert_whitespace` - color of the whitespace insertions on diffs,
240248
defaults to `IO.ANSI.color_background(2, 0, 0)`;

lib/ex_unit/lib/ex_unit/cli_formatter.ex

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ defmodule ExUnit.CLIFormatter do
353353

354354
defp colorize(escape, string, %{colors: colors}) do
355355
if colors[:enabled] do
356-
[escape, string, :reset]
356+
[Keyword.get(colors, escape, escape), string, :reset]
357357
|> IO.ANSI.format_fragment(true)
358358
|> IO.iodata_to_binary()
359359
else
@@ -370,28 +370,28 @@ defmodule ExUnit.CLIFormatter do
370370
end
371371

372372
defp success(msg, config) do
373-
colorize(:green, msg, config)
373+
colorize(:success, msg, config)
374374
end
375375

376376
defp invalid(msg, config) do
377-
colorize(:yellow, msg, config)
377+
colorize(:invalid, msg, config)
378378
end
379379

380380
defp skipped(msg, config) do
381-
colorize(:yellow, msg, config)
381+
colorize(:skipped, msg, config)
382382
end
383383

384384
defp failure(msg, config) do
385-
colorize(:red, msg, config)
385+
colorize(:failure, msg, config)
386386
end
387387

388388
defp formatter(:diff_enabled?, _, %{colors: colors}), do: colors[:enabled]
389389

390-
defp formatter(:error_info, msg, config), do: colorize(:red, msg, config)
390+
defp formatter(:error_info, msg, config), do: colorize(:error_info, msg, config)
391391

392-
defp formatter(:extra_info, msg, config), do: colorize(:cyan, msg, config)
392+
defp formatter(:extra_info, msg, config), do: colorize(:extra_info, msg, config)
393393

394-
defp formatter(:location_info, msg, config), do: colorize([:bright, :black], msg, config)
394+
defp formatter(:location_info, msg, config), do: colorize(:location_info, msg, config)
395395

396396
defp formatter(:diff_delete, doc, config), do: colorize_doc(:diff_delete, doc, config)
397397

@@ -405,7 +405,7 @@ defmodule ExUnit.CLIFormatter do
405405

406406
defp formatter(:blame_diff, msg, %{colors: colors} = config) do
407407
if colors[:enabled] do
408-
colorize(:red, msg, config)
408+
colorize(:diff_delete, msg, config)
409409
else
410410
"-" <> msg <> "-"
411411
end
@@ -427,7 +427,16 @@ defmodule ExUnit.CLIFormatter do
427427
diff_delete: :red,
428428
diff_delete_whitespace: IO.ANSI.color_background(2, 0, 0),
429429
diff_insert: :green,
430-
diff_insert_whitespace: IO.ANSI.color_background(0, 2, 0)
430+
diff_insert_whitespace: IO.ANSI.color_background(0, 2, 0),
431+
432+
# CLI formatter
433+
success: :green,
434+
invalid: :yellow,
435+
skipped: :yellow,
436+
failure: :red,
437+
error_info: :red,
438+
extra_info: :cyan,
439+
location_info: [:bright, :black]
431440
]
432441

433442
defp colors(opts) do

0 commit comments

Comments
 (0)