Views
UI Coverage organizes unique URLs from snapshots in end-to-end tests and mounted components in component tests into Views. Each View represents a distinct page or state in your application, allowing you to track coverage across different parts of your application.
How views are created​
By default, UI Coverage applies a set of rules to generate a single View for dynamic URLs representing the same page. These rules ensure clarity by grouping similar URLs and reducing noise:
- Search Parameters: All query parameters are removed (e.g., /dashboard?tab=overviewbecomes/dashboard).
- Hash Parameters: Fragment identifiers are removed unless they represent a subpath (e.g., #/admin).
- Dynamic Segments: URL segments that differ only by integers or UUIDs are replaced with a wildcard (*).
Examples of views​
- /users/123/profileand- /users/456/profilebecome- /users/*/profile
- /dashboard?tab=overviewand- /dashboard?tab=settingsbecome- /dashboard
- /app#settingsand- /app#profilebecome- /app
- /app#/adminand- /app#/settingsremain separate Views
These rules help consolidate similar pages into manageable Views while maintaining specificity where needed.
Using Views​
In the UI Coverage interface, Views are listed along with their coverage scores, providing insights into:
- Tested Areas: Identify which parts of your application have sufficient test coverage.
- Untested Areas: Spot pages or components that lack testing and prioritize them.
- Coverage Trends: Track how coverage evolves across Views over time.
- Critical Flows: Focus testing efforts on key user journeys and ensure their completeness.
Customizing views​
You can tailor how URLs are grouped into Views using configuration options:
View grouping​
Define rules for grouping URLs into Views to align with your application's structure:
{
  "views": [
    {
      "pattern": "https://cypress.io/users/*"
    }
  ]
}
To learn more about the configuration options, refer to the Views documentation.
Ignoring views​
Exclude irrelevant or low-priority URLs from being tracked as Views:
{
  "viewFilters": [
    {
      "pattern": "https://auth.example.com/*",
      "include": false
    }
  ]
}
To learn more about the configuration options, refer to the View Filters documentation.