diff --git a/packages/playwright/src/runner/loadUtils.ts b/packages/playwright/src/runner/loadUtils.ts index 5192fa8824..3096879906 100644 --- a/packages/playwright/src/runner/loadUtils.ts +++ b/packages/playwright/src/runner/loadUtils.ts @@ -123,7 +123,6 @@ export async function createRootSuite(testRun: TestRun, errors: TestError[], sho const config = testRun.config; // Create root suite, where each child will be a project suite with cloned file suites inside it. const rootSuite = new Suite('', 'root'); - const unfilteredProjectSuites = new Map(); const projectSuites = new Map(); const filteredProjectSuites = new Map(); @@ -137,11 +136,10 @@ export async function createRootSuite(testRun: TestRun, errors: TestError[], sho // Filter file suites for all projects. for (const [project, fileSuites] of testRun.projectSuites) { - unfilteredProjectSuites.set(project, createProjectSuite(project, fileSuites)); + projectSuites.set(project, createProjectSuite(project, fileSuites)); + const filteredFileSuites = additionalFileMatcher ? fileSuites.filter(fileSuite => additionalFileMatcher(fileSuite.location!.file)) : fileSuites; - const projectSuite = createProjectSuite(project, filteredFileSuites); - projectSuites.set(project, projectSuite); - const filteredProjectSuite = filterProjectSuite(projectSuite, { cliFileFilters, cliTitleMatcher, testIdMatcher: config.testIdMatcher }); + const filteredProjectSuite = filterProjectSuite(createProjectSuite(project, filteredFileSuites), { cliFileFilters, cliTitleMatcher, testIdMatcher: config.testIdMatcher }); filteredProjectSuites.set(project, filteredProjectSuite); } } @@ -204,7 +202,7 @@ export async function createRootSuite(testRun: TestRun, errors: TestError[], sho // Clone file suites for dependency projects. for (const [project, level] of projectClosure.entries()) { if (level === 'dependency') - rootSuite._prependSuite(buildProjectSuite(project, unfilteredProjectSuites.get(project)!)); + rootSuite._prependSuite(buildProjectSuite(project, projectSuites.get(project)!)); } }