Skip to content

Commit 42e9086

Browse files
committed
always include files directly passed to mix test
1 parent 49ba380 commit 42e9086

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

lib/mix/lib/mix/tasks/test.ex

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -634,11 +634,18 @@ defmodule Mix.Tasks.Test do
634634
# get a list of all files in the test folders, which we filter by the test_load_filters
635635
potential_test_files = Mix.Utils.extract_files(test_files, test_pattern)
636636

637-
{unfiltered_test_files, _ignored_files, warn_files} =
637+
{load_files, _ignored_files, warn_files} =
638638
classify_test_files(potential_test_files, project)
639639

640+
# ensure that files given as direct argument to mix test are loaded,
641+
# even if the test_load_filters don't match
642+
load_files =
643+
if files != [],
644+
do: Enum.uniq(load_files ++ directly_included_test_files(files)),
645+
else: load_files
646+
640647
matched_test_files =
641-
unfiltered_test_files
648+
load_files
642649
|> filter_to_allowed_files(allowed_files)
643650
|> filter_by_partition(shell, partitions)
644651

@@ -713,6 +720,10 @@ defmodule Mix.Tasks.Test do
713720
end
714721
end
715722

723+
defp directly_included_test_files(files) do
724+
Enum.filter(files, fn path -> :elixir_utils.read_file_type(path) == {:ok, :regular} end)
725+
end
726+
716727
defp classify_test_files(potential_test_files, project) do
717728
test_load_filters = project[:test_load_filters] || [~r/.*_test\.exs$/]
718729
elixirc_paths = project[:elixirc_paths] || []

0 commit comments

Comments
 (0)