diff --git a/test/browser/specs/failure-screenshot.test.ts b/test/browser/specs/failure-screenshot.test.ts
index cb8222995..9e210c7f9 100644
--- a/test/browser/specs/failure-screenshot.test.ts
+++ b/test/browser/specs/failure-screenshot.test.ts
@@ -158,5 +158,31 @@ describe('failure screenshots', () => {
`)
expect(new Set(readReportedScreenshots(stderr)).size).toBe(4)
})
+
+ test('lists each attempt once under a merged error', async () => {
+ const { stderr, root } = await runBrowserTests({
+ [testFilename]: /* ts */ `
+ import { expect, test } from 'vitest'
+
+ test('merged', { retry: 1 }, () => {
+ document.body.innerHTML = ''
+ for (let i = 0; i < 2; i++) {
+ expect.soft(1).toBe(2)
+ }
+ })
+ `,
+ })
+
+ expect(extractFailureLines(stderr, root)).toMatchInlineSnapshot(`
+ " FAIL |chromium| basic.test.ts > merged
+ FAIL |chromium| basic.test.ts > merged
+ FAIL |chromium| basic.test.ts > merged
+ FAIL |chromium| basic.test.ts > merged
+ AssertionError: expected 1 to be 2 // Object.is equality
+ Failure screenshots:
+ - /.vitest/attachments/failure-screenshots/basic.test.ts/merged-0-0.png
+ - /.vitest/attachments/failure-screenshots/basic.test.ts/merged-0-1.png"
+ `)
+ })
})
})