Principle:Cypress io Cypress Test Suite Execution
| Knowledge Sources | |
|---|---|
| Domains | Testing, Development |
| Last Updated | 2026-02-12 00:00 GMT |
Overview
A multi-tier testing strategy that uses Vitest for unit tests, Cypress-in-Cypress for E2E tests, and Mocha for system tests across the monorepo.
Description
The Cypress monorepo uses three testing tiers: Vitest for fast unit and integration tests (per-package), Cypress-in-Cypress for E2E tests of the Cypress application itself, and Mocha for system-level integration tests of the packaged binary. The root vitest.config.ts aggregates all per-package Vitest configurations into a unified test suite.
This multi-tier approach ensures comprehensive coverage: Vitest catches logic errors quickly, Cypress-in-Cypress validates the UI experience, and system tests validate the full binary.
Usage
Use this principle when writing or running tests during Cypress development. Each tier serves a different validation purpose and has different speed/scope trade-offs.
Theoretical Basis
Testing Tiers:
Tier 1: Vitest (unit/integration)
- Fast, per-package
- vitest.config.ts per package
- Root aggregator: vitest.config.ts
- Coverage: V8 provider
Tier 2: Cypress-in-Cypress (E2E)
- Tests Cypress UI with Cypress
- packages/app/cypress/, packages/launchpad/cypress/
- Slower, but tests real UI
Tier 3: System Tests (integration)
- Tests packaged binary
- system-tests/test/
- Slowest, but most realistic