mirror of
https://github.com/microsoft/playwright.git
synced 2024-12-01 08:34:02 +03:00
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.
|
||||
|
||||
## 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
|
||||
* since: v1.10
|
||||
- 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.
|
||||
|
||||
## 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
|
||||
* since: v1.10
|
||||
- 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];
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
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;
|
||||
|
||||
/**
|
||||
* 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
|
||||
* [test retries](https://playwright.dev/docs/test-retries#retries).
|
||||
@ -1360,6 +1369,15 @@ interface TestConfig<TestArgs = {}, WorkerArgs = {}> {
|
||||
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
|
||||
* 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);
|
||||
});
|
||||
|
||||
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 New Issue
Block a user