Skip to content

Reporter error is silenced when --merge-reports #9642

@hi-ogawa

Description

@hi-ogawa

Describe the bug

I noticed this in #9641 when I try to merge blob reporter into html reporter but html reporter was broken. There's an intentional .catch(noop), but I'm not sure this is desired behavior. Perhaps, at least, it should log what's thrown? also adjust exit code?

await this._testRun.start(specifications).catch(noop)

Reproduction

https://stackblitz.com/edit/vitest-dev-vitest-nmeth2lr?file=vite.config.ts

// vite.config.ts
import { defineConfig } from 'vite';

export default defineConfig({
  test: {
    reporters: [
      {
        onTestRunStart() {
          if (process.env.CRASH_REPORTER) {
            console.log('throwing but nothing?');
            throw new Error('boom');
          }
        },
      },
    ],
  },
});
❯ vitest --run --reporter=blob
blob report written to /home/projects/vitest-dev-vitest-nmeth2lr/.vitest-reports/blob.json

# exit code is 0
❯ CRASH_REPORTER=1 vitest --run --merge-reports 
throwing but nothing?

System Info

System:
    OS: Linux 5.0 undefined
    CPU: (8) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 0 Bytes / 0 Bytes
    Shell: 1.0 - /bin/jsh
  Binaries:
    Node: 20.19.1 - /usr/local/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 10.8.2 - /usr/local/bin/npm
    pnpm: 8.15.6 - /usr/local/bin/pnpm
  npmPackages:
    @vitest/ui: latest => 4.0.18 
    vite: latest => 7.3.1 
    vitest: latest => 4.0.18

Used Package Manager

npm

Validations

Metadata

Metadata

Assignees

Labels

p3-minor-bugAn edge case that only affects very specific usage (priority)

Type

Projects

Status

Approved

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions