From 483b304e22468b8ecaefc3c56375cb4c725492cd Mon Sep 17 00:00:00 2001 From: Max Schmitt Date: Wed, 11 Sep 2024 11:53:21 +0200 Subject: [PATCH] review feedback --- packages/playwright/src/runner/failureTracker.ts | 7 ++----- tests/playwright-test/max-failures.spec.ts | 13 ++----------- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/packages/playwright/src/runner/failureTracker.ts b/packages/playwright/src/runner/failureTracker.ts index 03c4c7121b..ac62677571 100644 --- a/packages/playwright/src/runner/failureTracker.ts +++ b/packages/playwright/src/runner/failureTracker.ts @@ -31,12 +31,9 @@ export class FailureTracker { } onTestEnd(test: TestCase, result: TestResult) { - if (result.status === 'skipped') - return; - if (result.status !== test.expectedStatus) + // Test is considered failing after the last retry. + if (test.outcome() === 'unexpected' && test.results.length > test.retries) ++this._failureCount; - else - this._failureCount -= result.retry; } onWorkerError() { diff --git a/tests/playwright-test/max-failures.spec.ts b/tests/playwright-test/max-failures.spec.ts index 157b18ee2d..b0edebffb3 100644 --- a/tests/playwright-test/max-failures.spec.ts +++ b/tests/playwright-test/max-failures.spec.ts @@ -191,27 +191,18 @@ test('max-failures should not consider retries as failures', async ({ runInlineT }; `, 'example.spec.ts': ` - import fs from 'fs'; import { test, expect } from '@playwright/test'; test('I fail 9 times 1', () => { - let count = parseInt(fs.readFileSync('count1', 'utf8'), 10); - count++; - fs.writeFileSync('count1', String(count)); - if (count < 10) + if (test.info().retry < 9) throw new Error('failing intentionally'); }); test('I fail 9 times 2', () => { - let count = parseInt(fs.readFileSync('count2', 'utf8'), 10); - count++; - fs.writeFileSync('count2', String(count)); - if (count < 10) + if (test.info().retry < 9) throw new Error('failing intentionally'); }); `, - 'count1': '0', - 'count2': '0', }, { workers: 1 }); expect(result.exitCode).toBe(0); expect(result.failed).toBe(0);