feat(config): respectGitIgnore option (#30972)
Fixes https://github.com/microsoft/playwright/issues/30553
This commit is contained in:
parent
20a23b3485
commit
a106428114
|
|
@ -439,6 +439,12 @@ export default defineConfig({
|
||||||
|
|
||||||
Test files that took more than `threshold` milliseconds are considered slow, and the slowest ones are reported, no more than `max` number of them. Passing zero as `max` reports all test files that exceed the threshold.
|
Test files that took more than `threshold` milliseconds are considered slow, and the slowest ones are reported, no more than `max` number of them. Passing zero as `max` reports all test files that exceed the threshold.
|
||||||
|
|
||||||
|
## property: TestConfig.respectGitIgnore
|
||||||
|
* since: v1.45
|
||||||
|
- type: ?<[boolean]>
|
||||||
|
|
||||||
|
Whether to skip entries from `.gitignore` when searching for test files. By default, if neither [`property: TestConfig.testDir`] nor [`property: TestProject.testDir`] are explicitely specified, Playwright will ignore any test files matching `.gitignore` entries. This option allows to override that behavior.
|
||||||
|
|
||||||
## property: TestConfig.retries
|
## property: TestConfig.retries
|
||||||
* since: v1.10
|
* since: v1.10
|
||||||
- type: ?<[int]>
|
- type: ?<[int]>
|
||||||
|
|
|
||||||
|
|
@ -223,6 +223,12 @@ The number of times to repeat each test, useful for debugging flaky tests.
|
||||||
|
|
||||||
Use [`property: TestConfig.repeatEach`] to change this option for all projects.
|
Use [`property: TestConfig.repeatEach`] to change this option for all projects.
|
||||||
|
|
||||||
|
## property: TestProject.respectGitIgnore
|
||||||
|
* since: v1.45
|
||||||
|
- type: ?<[boolean]>
|
||||||
|
|
||||||
|
Whether to skip entries from `.gitignore` when searching for test files. By default, if neither [`property: TestConfig.testDir`] nor [`property: TestProject.testDir`] are explicitely specified, Playwright will ignore any test files matching `.gitignore` entries. This option allows to override that behavior.
|
||||||
|
|
||||||
## property: TestProject.retries
|
## property: TestProject.retries
|
||||||
* since: v1.10
|
* since: v1.10
|
||||||
- type: ?<[int]>
|
- type: ?<[int]>
|
||||||
|
|
|
||||||
|
|
@ -196,7 +196,7 @@ export class FullProjectInternal {
|
||||||
const stylePaths = Array.isArray(this.expect.toHaveScreenshot.stylePath) ? this.expect.toHaveScreenshot.stylePath : [this.expect.toHaveScreenshot.stylePath];
|
const stylePaths = Array.isArray(this.expect.toHaveScreenshot.stylePath) ? this.expect.toHaveScreenshot.stylePath : [this.expect.toHaveScreenshot.stylePath];
|
||||||
this.expect.toHaveScreenshot.stylePath = stylePaths.map(stylePath => path.resolve(configDir, stylePath));
|
this.expect.toHaveScreenshot.stylePath = stylePaths.map(stylePath => path.resolve(configDir, stylePath));
|
||||||
}
|
}
|
||||||
this.respectGitIgnore = !projectConfig.testDir && !config.testDir;
|
this.respectGitIgnore = takeFirst(projectConfig.respectGitIgnore, config.respectGitIgnore, !projectConfig.testDir && !config.testDir);
|
||||||
this.ignoreSnapshots = takeFirst(configCLIOverrides.ignoreSnapshots, projectConfig.ignoreSnapshots, config.ignoreSnapshots, false);
|
this.ignoreSnapshots = takeFirst(configCLIOverrides.ignoreSnapshots, projectConfig.ignoreSnapshots, config.ignoreSnapshots, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
18
packages/playwright/types/test.d.ts
vendored
18
packages/playwright/types/test.d.ts
vendored
|
|
@ -363,6 +363,15 @@ interface TestProject<TestArgs = {}, WorkerArgs = {}> {
|
||||||
*/
|
*/
|
||||||
repeatEach?: number;
|
repeatEach?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether to skip entries from `.gitignore` when searching for test files. By default, if neither
|
||||||
|
* [testConfig.testDir](https://playwright.dev/docs/api/class-testconfig#test-config-test-dir) nor
|
||||||
|
* [testProject.testDir](https://playwright.dev/docs/api/class-testproject#test-project-test-dir) are explicitely
|
||||||
|
* specified, Playwright will ignore any test files matching `.gitignore` entries. This option allows to override that
|
||||||
|
* behavior.
|
||||||
|
*/
|
||||||
|
respectGitIgnore?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The maximum number of retry attempts given to failed tests. Learn more about
|
* The maximum number of retry attempts given to failed tests. Learn more about
|
||||||
* [test retries](https://playwright.dev/docs/test-retries#retries).
|
* [test retries](https://playwright.dev/docs/test-retries#retries).
|
||||||
|
|
@ -1360,6 +1369,15 @@ interface TestConfig<TestArgs = {}, WorkerArgs = {}> {
|
||||||
threshold: number;
|
threshold: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether to skip entries from `.gitignore` when searching for test files. By default, if neither
|
||||||
|
* [testConfig.testDir](https://playwright.dev/docs/api/class-testconfig#test-config-test-dir) nor
|
||||||
|
* [testProject.testDir](https://playwright.dev/docs/api/class-testproject#test-project-test-dir) are explicitely
|
||||||
|
* specified, Playwright will ignore any test files matching `.gitignore` entries. This option allows to override that
|
||||||
|
* behavior.
|
||||||
|
*/
|
||||||
|
respectGitIgnore?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The maximum number of retry attempts given to failed tests. By default failing tests are not retried. Learn more
|
* The maximum number of retry attempts given to failed tests. By default failing tests are not retried. Learn more
|
||||||
* about [test retries](https://playwright.dev/docs/test-retries#retries).
|
* about [test retries](https://playwright.dev/docs/test-retries#retries).
|
||||||
|
|
|
||||||
|
|
@ -157,3 +157,40 @@ test('should ignore .gitignore inside project testDir', async ({ runInlineTest }
|
||||||
expect(result.passed).toBe(2);
|
expect(result.passed).toBe(2);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('global config respectGitIgnore', {
|
||||||
|
annotation: { type: 'issue', description: 'https://github.com/microsoft/playwright/issues/30553' }
|
||||||
|
}, async ({ runInlineTest }) => {
|
||||||
|
const result = await runInlineTest({
|
||||||
|
'tests/.gitignore': `
|
||||||
|
*.js
|
||||||
|
`,
|
||||||
|
'playwright.config.js': `
|
||||||
|
module.exports = { respectGitIgnore: false, projects: [{ }] };
|
||||||
|
`,
|
||||||
|
'tests/a.spec.js': `
|
||||||
|
import { test, expect } from '@playwright/test';
|
||||||
|
test('pass', ({}) => {});
|
||||||
|
`,
|
||||||
|
});
|
||||||
|
expect(result.exitCode).toBe(0);
|
||||||
|
expect(result.passed).toBe(1);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('project config respectGitIgnore', {
|
||||||
|
annotation: { type: 'issue', description: 'https://github.com/microsoft/playwright/issues/30553' }
|
||||||
|
}, async ({ runInlineTest }) => {
|
||||||
|
const result = await runInlineTest({
|
||||||
|
'tests/.gitignore': `
|
||||||
|
*.js
|
||||||
|
`,
|
||||||
|
'playwright.config.js': `
|
||||||
|
module.exports = { projects: [{ respectGitIgnore: false }] };
|
||||||
|
`,
|
||||||
|
'tests/a.spec.js': `
|
||||||
|
import { test, expect } from '@playwright/test';
|
||||||
|
test('pass', ({}) => {});
|
||||||
|
`,
|
||||||
|
});
|
||||||
|
expect(result.exitCode).toBe(0);
|
||||||
|
expect(result.passed).toBe(1);
|
||||||
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue