diff --git a/docs/src/test-api/class-fullconfig.md b/docs/src/test-api/class-fullconfig.md index 8207d5f6a7..e6437ab314 100644 --- a/docs/src/test-api/class-fullconfig.md +++ b/docs/src/test-api/class-fullconfig.md @@ -112,12 +112,6 @@ Base directory for all relative paths used in the reporters. See [`property: TestConfig.shard`]. -## property: FullConfig.shardingSeed -* since: ??? -- type: <[null]|[string]> - -See [`property: TestConfig.shardingSeed`]. - ## property: FullConfig.updateSnapshots * since: v1.10 - type: <[UpdateSnapshots]<"all"|"none"|"missing">> diff --git a/docs/src/test-api/class-testconfig.md b/docs/src/test-api/class-testconfig.md index df4a3add73..7d24845a54 100644 --- a/docs/src/test-api/class-testconfig.md +++ b/docs/src/test-api/class-testconfig.md @@ -478,7 +478,7 @@ export default defineConfig({ ## property: TestConfig.shardingSeed -* since: ??? +* since: v1.45 - type: ?<[string]> Shuffle the order of test groups with a seed. By default tests are run in the order they are discovered, which is mostly alphabetical. This could lead to an uneven distribution of slow and fast tests. Shuffling the order of tests in a deterministic way can help to distribute the load more evenly. diff --git a/packages/playwright/src/common/config.ts b/packages/playwright/src/common/config.ts index 7a5d3ee0f3..aadfb00754 100644 --- a/packages/playwright/src/common/config.ts +++ b/packages/playwright/src/common/config.ts @@ -55,6 +55,7 @@ export class FullConfigInternal { cliFailOnFlakyTests?: boolean; testIdMatcher?: Matcher; defineConfigWasUsed = false; + shardingSeed: string | null; constructor(location: ConfigLocation, userConfig: Config, configCLIOverrides: ConfigCLIOverrides) { if (configCLIOverrides.projects && userConfig.projects) @@ -87,12 +88,12 @@ export class FullConfigInternal { quiet: takeFirst(configCLIOverrides.quiet, userConfig.quiet, false), projects: [], shard: takeFirst(configCLIOverrides.shard, userConfig.shard, null), - shardingSeed: takeFirst(configCLIOverrides.shardingSeed, userConfig.shardingSeed, null), updateSnapshots: takeFirst(configCLIOverrides.updateSnapshots, userConfig.updateSnapshots, 'missing'), version: require('../../package.json').version, workers: 0, webServer: null, }; + this.shardingSeed = takeFirst(configCLIOverrides.shardingSeed, userConfig.shardingSeed, null); for (const key in userConfig) { if (key.startsWith('@')) (this.config as any)[key] = (userConfig as any)[key]; diff --git a/packages/playwright/src/isomorphic/teleReceiver.ts b/packages/playwright/src/isomorphic/teleReceiver.ts index a5b989afc8..da377b099f 100644 --- a/packages/playwright/src/isomorphic/teleReceiver.ts +++ b/packages/playwright/src/isomorphic/teleReceiver.ts @@ -595,7 +595,6 @@ export const baseFullConfig: reporterTypes.FullConfig = { rootDir: '', quiet: false, shard: null, - shardingSeed: null, updateSnapshots: 'missing', version: '', workers: 0, diff --git a/packages/playwright/src/runner/loadUtils.ts b/packages/playwright/src/runner/loadUtils.ts index bbcdc15aa1..3cc82e6daa 100644 --- a/packages/playwright/src/runner/loadUtils.ts +++ b/packages/playwright/src/runner/loadUtils.ts @@ -182,8 +182,8 @@ export async function createRootSuite(testRun: TestRun, errors: TestError[], sho for (const projectSuite of rootSuite.suites) testGroups.push(...createTestGroups(projectSuite, config.config.workers)); - if (config.config.shardingSeed) - shuffleWithSeed(testGroups, config.config.shardingSeed); + if (config.shardingSeed) + shuffleWithSeed(testGroups, config.shardingSeed); // Shard test groups. const testGroupsInThisShard = filterForShard(config.config.shard, testGroups); diff --git a/packages/playwright/types/test.d.ts b/packages/playwright/types/test.d.ts index d7e2c8a12b..404d255577 100644 --- a/packages/playwright/types/test.d.ts +++ b/packages/playwright/types/test.d.ts @@ -1806,11 +1806,6 @@ export interface FullConfig { current: number; }; - /** - * See [testConfig.shardingSeed](https://playwright.dev/docs/api/class-testconfig#test-config-sharding-seed). - */ - shardingSeed: null|string; - /** * See [testConfig.updateSnapshots](https://playwright.dev/docs/api/class-testconfig#test-config-update-snapshots). */