vitest-dev / vitest-dev/vitest
OpenTelemetry: support tracking fixtures
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 17.1k
- Forks
- 2k
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 94
Description
Clear and concise description of the problem
Currently, fixtures are not properly tracked as separate spans so it's hard to pinpoint which fixture takes the longest time.
Suggested solution
Track fixtures. The main issue right now is that we cannot use startActiveSpan and pass down the context properly because fixture resolution is split into separate promises:
We could reuse startContextSpan, but then users won't be able to inherit the context.
Alternative
No response
Additional context
No response
Validations
- Follow our Code of Conduct
- Read the Contributing Guidelines.
- Read the docs.
- Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in packages/runner/src/fixture.ts around line 282, where fixture resolution is split across promises. Read the existing startActiveSpan and startContextSpan usage and trace how fixture resolution passes context. Done means each fixture is represented as a separate OpenTelemetry span while preserving inherited user context.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- observability, testing
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100