diff --git a/packages/playwright/src/runner/tasks.ts b/packages/playwright/src/runner/tasks.ts index f343f06bfe..d50bb91229 100644 --- a/packages/playwright/src/runner/tasks.ts +++ b/packages/playwright/src/runner/tasks.ts @@ -234,7 +234,7 @@ function createLoadTask(mode: 'out-of-process' | 'in-process', options: { filter if (testRun.config.cliOnlyChanged && options.filterOnlyChanged) { for (const plugin of testRun.config.plugins) await plugin.instance?.populateDependencies?.(); - const changedFiles = await detectChangedFiles(testRun.config.cliOnlyChanged); + const changedFiles = await detectChangedFiles(testRun.config.cliOnlyChanged, testRun.config.configDir); cliOnlyChangedMatcher = file => changedFiles.has(file); } diff --git a/packages/playwright/src/runner/vcs.ts b/packages/playwright/src/runner/vcs.ts index 5ef75e8be4..325e901bec 100644 --- a/packages/playwright/src/runner/vcs.ts +++ b/packages/playwright/src/runner/vcs.ts @@ -18,12 +18,12 @@ import childProcess from 'child_process'; import { affectedTestFiles } from '../transform/compilationCache'; import path from 'path'; -export async function detectChangedFiles(baseCommit: string): Promise> { +export async function detectChangedFiles(baseCommit: string, configDir: string): Promise> { function gitFileList(command: string) { try { return childProcess.execSync( `git ${command}`, - { encoding: 'utf-8', stdio: 'pipe' } + { encoding: 'utf-8', stdio: 'pipe', cwd: configDir } ).split('\n').filter(Boolean); } catch (_error) { const error = _error as childProcess.SpawnSyncReturns;