fix(discovery): use pattern-based filtering when tests_root overlaps source #1228
+387
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
tests_rootequalsmodule_rootorproject_root.test.,.spec.,_test.,_spec.) and directory patterns (/test/,/tests/,/__tests__/)/path/tests/my-project)Problem
When auto-detection sets
tests_rootto the same value asmodule_rootorproject_root(common in monorepos and projects without dedicated test directories), the filter conditionfile_path.startswith(tests_root + os.sep)matches ALL source files, causing them all to be filtered out as "test functions".Solution
The fix adds an
is_test_file()helper function that:Test Plan