Skip to content

Commit 76bff37

Browse files
committed
[ex_unit] omit excluded tests from test count in CLI summary
1 parent 53f6a45 commit 76bff37

File tree

2 files changed

+22
-16
lines changed

2 files changed

+22
-16
lines changed

lib/ex_unit/lib/ex_unit/cli_formatter.ex

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -384,15 +384,21 @@ defmodule ExUnit.CLIFormatter do
384384
IO.puts(formatted)
385385
end
386386

387-
defp format_test_type_counts(%{test_counter: test_counter} = _config) do
388-
test_counter
387+
defp format_test_type_counts(config) do
388+
config.test_counter
389389
|> Enum.sort()
390390
|> Enum.map(fn {test_type, count} ->
391-
type_pluralized = pluralize(count, test_type, ExUnit.plural_rule(test_type |> to_string()))
392-
"#{count} #{type_pluralized}, "
391+
executed_count = calculate_executed_test_count(test_type, count, config.excluded_counter)
392+
plural_rule = ExUnit.plural_rule(test_type |> to_string())
393+
type_pluralized = pluralize(executed_count, test_type, plural_rule)
394+
395+
"#{executed_count} #{type_pluralized}, "
393396
end)
394397
end
395398

399+
defp calculate_executed_test_count(:test, count, excluded_counter), do: count - excluded_counter
400+
defp calculate_executed_test_count(_test_type, count, _excluded_counter), do: count
401+
396402
defp collect_test_type_counts(%{test_counter: test_counter} = _config) do
397403
Enum.reduce(test_counter, 0, fn {_, count}, acc ->
398404
acc + count

lib/ex_unit/test/ex_unit_test.exs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -331,19 +331,19 @@ defmodule ExUnitTest do
331331

332332
{result, output} = run_with_filter([exclude: [even: true]], [ParityTest])
333333
assert result == %{failures: 0, skipped: 0, excluded: 1, total: 4}
334-
assert output =~ "\n4 tests, 0 failures, 1 excluded\n"
334+
assert output =~ "\n3 tests, 0 failures, 1 excluded\n"
335335

336336
{result, output} = run_with_filter([exclude: :even], [ParityTest])
337337
assert result == %{failures: 0, skipped: 0, excluded: 3, total: 4}
338-
assert output =~ "\n4 tests, 0 failures, 3 excluded\n"
338+
assert output =~ "\n1 test, 0 failures, 3 excluded\n"
339339

340340
{result, output} = run_with_filter([exclude: :even, include: [even: true]], [ParityTest])
341341
assert result == %{failures: 1, skipped: 0, excluded: 2, total: 4}
342-
assert output =~ "\n4 tests, 1 failure, 2 excluded\n"
342+
assert output =~ "\n2 tests, 1 failure, 2 excluded\n"
343343

344344
{result, output} = run_with_filter([exclude: :test, include: [even: true]], [ParityTest])
345345
assert result == %{failures: 1, skipped: 0, excluded: 3, total: 4}
346-
assert output =~ "\n4 tests, 1 failure, 3 excluded\n"
346+
assert output =~ "\n1 test, 1 failure, 3 excluded\n"
347347
end
348348

349349
test "log capturing" do
@@ -509,15 +509,15 @@ defmodule ExUnitTest do
509509
# Empty because it is already loaded
510510
{result, output} = run_with_filter([exclude: :module], [])
511511
assert result == %{failures: 0, skipped: 0, excluded: 2, total: 2}
512-
assert output =~ "\n2 tests, 0 failures, 2 excluded\n"
512+
assert output =~ "\n0 tests, 0 failures, 2 excluded\n"
513513

514514
{result, output} =
515515
[exclude: :test, include: [module: "ExUnitTest.SecondTestModule"]]
516516
|> run_with_filter([FirstTestModule, SecondTestModule])
517517

518518
assert result == %{failures: 1, skipped: 0, excluded: 1, total: 2}
519519
assert output =~ "\n 1) test false (ExUnitTest.SecondTestModule)\n"
520-
assert output =~ "\n2 tests, 1 failure, 1 excluded\n"
520+
assert output =~ "\n1 test, 1 failure, 1 excluded\n"
521521
end
522522

523523
test "raises on reserved tag :file in module" do
@@ -680,7 +680,7 @@ defmodule ExUnitTest do
680680
end)
681681

682682
refute output =~ max_failures_reached_msg()
683-
assert output =~ "\n6 tests, 0 failures, 1 excluded, 4 invalid, 1 skipped\n"
683+
assert output =~ "\n5 tests, 0 failures, 1 excluded, 4 invalid, 1 skipped\n"
684684
end
685685

686686
test "parameterized tests" do
@@ -787,7 +787,7 @@ defmodule ExUnitTest do
787787
end)
788788

789789
assert output =~ max_failures_reached_msg()
790-
assert output =~ "\n6 tests, 2 failures, 1 excluded, 1 skipped\n"
790+
assert output =~ "\n5 tests, 2 failures, 1 excluded, 1 skipped\n"
791791
end
792792

793793
test ":max_failures is not reached" do
@@ -818,7 +818,7 @@ defmodule ExUnitTest do
818818
end)
819819

820820
refute output =~ max_failures_reached_msg()
821-
assert output =~ "\n8 tests, 2 failures, 2 excluded, 1 skipped\n"
821+
assert output =~ "\n6 tests, 2 failures, 2 excluded, 1 skipped\n"
822822
end
823823

824824
test ":max_failures has been reached" do
@@ -852,7 +852,7 @@ defmodule ExUnitTest do
852852
end)
853853

854854
assert output =~ max_failures_reached_msg()
855-
assert output =~ "\n7 tests, 2 failures, 2 excluded, 2 skipped\n"
855+
assert output =~ "\n5 tests, 2 failures, 2 excluded, 2 skipped\n"
856856
end
857857

858858
# Excluded and skipped tests are detected before setup_all
@@ -886,7 +886,7 @@ defmodule ExUnitTest do
886886
end)
887887

888888
assert output =~ max_failures_reached_msg()
889-
assert output =~ "\n4 tests, 0 failures, 1 excluded, 2 invalid, 1 skipped\n"
889+
assert output =~ "\n3 tests, 0 failures, 1 excluded, 2 invalid, 1 skipped\n"
890890
end
891891

892892
test ":max_failures flushes all async/sync cases" do
@@ -1059,7 +1059,7 @@ defmodule ExUnitTest do
10591059
end)
10601060

10611061
assert output =~ "All tests have been excluded.\n"
1062-
assert output =~ "2 tests, 0 failures, 2 excluded\n"
1062+
assert output =~ "0 tests, 0 failures, 2 excluded\n"
10631063
end
10641064

10651065
test "tests are run in compile order (FIFO)" do

0 commit comments

Comments
 (0)