Inspect results
Save a local JSON report, run an evaluation, and open the dashboard to inspect case outcomes.
Prerequisites
- Complete Getting started and have an evaluation to run.
- Run the commands from the project root containing
viteval.config.ts.
Steps
Save evaluation reports
Select the JSON result destination in viteval.config.ts:
Viteval saves evaluation inputs, outputs, scores, and final case outcomes. There is no public reporter constructor or runner configuration.
Run the evaluation
The JSON destination writes the completed run under .viteval/results even when a case
fails its threshold.
Open the dashboard
For a project in another directory, pass its root:
The dashboard reads .viteval/results under the selected root. The installed
package includes the server and browser assets, so no development server is
needed.
Inspect a completed run
Open the run and compare each case's input, expected value, output, and scores. Use execution errors and scorer metadata to distinguish request failures from answers that scored below the threshold.
Verification
Confirm .viteval/results contains a new JSON file and the dashboard shows the
same evaluation case counts and final outcomes as the CLI. Native tests are
excluded from evaluation counts. A skipped case without an evaluation artifact
can contribute to counts without a detailed case entry.
Troubleshooting
No runs appear
Confirm the dashboard root contains .viteval/results and JSON persistence writes
there. Hosted results and Vitest's built-in JSON reports are not dashboard inputs.
Retaining run history
JSON persistence gives each run its own identity, including watch reruns. No output filename or path placeholder is needed. Writes use atomic replacement.
A saved file is rejected
Use a V1 snapshot written by the JSON result destination. Empty, malformed, or incompatible files produce warnings. Hosted results and runner test reports are not local dashboard inputs.
References
- Storage and results
- Configuration for result destination options
uifor dashboard command options- Set up storage providers to persist results in another backend