Cypress

VerifiedSafe

End-to-end testing framework for web applications that runs tests directly in the browser for fast, reliable feedback.

Sby Skills Guide Bot
TestingIntermediate
7/22/2026
Claude CodeCursorWindsurfCopilotCodex
#cypress#e2e-testing#component-testing#test-automation#ci

Recommended for

Automated summary

Guides writing and configuring Cypress end-to-end and component tests, including resilient selectors, network interception, custom commands, and CI parallelization.

Strengths

  • Prescribes resilient data-testid selectors and API stubbing with cy.intercept() to reduce flakiness.
  • Covers both E2E and component testing, with framework-specific mounting setup.
  • Includes CI guidance for recording, parallel runs, screenshots, and video on failure.
  • Emphasizes independent tests and user-perspective flows.

Limitations

  • Focused on Cypress-specific patterns; does not cover migration from other test runners.
  • Assumes an existing Cypress setup or that dependencies can be installed.
  • Component testing guidance names only React and Vue mounting libraries.
When to use it

Use when adding, refactoring, or stabilizing Cypress tests for a web app, or when setting up Cypress component tests and CI runs.

When not to use it

Do not use when the project uses a different test framework or needs guidance on non-browser testing.

Security analysis

Safe
Quality score84/100

This is purely documentation-style guidance for using the Cypress testing framework. It contains no shell commands, no file writes, no network exfiltration, no obfuscation, and no instructions to disable safety mechanisms. The only potentially sensitive item is the mention of `--record --key` for Cypress Cloud, which is standard documented usage and does not instruct exposure of secrets.

No concerns found

How this analysis is made

Examples

Checkout E2E tests
Add Cypress end-to-end tests for our e-commerce checkout: select a product, fill the shipping form, stub the cart API, and assert the confirmation URL.
React component testing
Configure Cypress component testing for our React app, add tests for the Button and LoginForm components, and include them in CI.
Refactor flaky tests
Refactor our Cypress tests to use data-testid selectors instead of CSS classes and replace cy.wait(5000) calls with cy.intercept() aliases and cy.wait('@alias').

Cypress

Overview

Cypress is an end-to-end testing framework for web applications that runs tests directly in the browser for fast, reliable feedback. It provides element selection, network interception, component testing, and CI integration with parallelization and video recording.

Instructions

  • When selecting elements, use data-testid or data-cy attributes with cy.get("[data-testid='submit']") instead of CSS classes or IDs for resilient selectors.
  • When testing interactions, use cy.get().type(), .click(), .select(), and .check() for user actions, and chain .should() assertions for expected outcomes.
  • When handling API calls, use cy.intercept() to stub external APIs with fixtures or spy on requests, and cy.wait("@alias") after actions that trigger calls instead of cy.wait(ms).
  • When writing custom commands, use Cypress.Commands.add() for reusable patterns like login, database seeding, and common workflows, with TypeScript declarations for IntelliSense.
  • When testing components, use cy.mount() with framework-specific mounting libraries (@cypress/react, @cypress/vue) to test components in isolation.
  • When configuring CI, use cypress run --record --key for Cypress Cloud integration with --parallel to split tests across machines, and --browser to specify the browser.
  • When setting up the project, configure cypress.config.ts with baseUrl, viewport dimensions, timeouts, and environment variables.

Examples

Example 1: Write E2E tests for a checkout flow

User request: "Add Cypress tests for our e-commerce checkout process"

Actions:

  1. Set up test with cy.visit("/products") and select a product
  2. Intercept the cart API with cy.intercept("POST", "/api/cart") and alias it
  3. Fill in shipping form using cy.get("[data-testid='email']").type(...)
  4. Assert order confirmation with cy.url().should("include", "/confirmation")

Output: A reliable E2E test covering the full checkout flow with stubbed API responses.

Example 2: Set up component testing for React

User request: "Configure Cypress component testing for our React project"

Actions:

  1. Install @cypress/react and configure component testing in cypress.config.ts
  2. Create stories for key components using cy.mount(<Component />)
  3. Test interactions with cy.get().click() and assert DOM changes
  4. Add to CI pipeline alongside E2E tests

Output: Isolated component tests running in a real browser with full Cypress API.

Guidelines

  • Use data-testid attributes for test selectors; never rely on CSS classes, text content, or DOM structure.
  • Keep tests independent: each test should set up its own state (login, seed data).
  • Use cy.intercept() to stub external APIs; do not let tests depend on third-party service availability.
  • Add cy.wait("@alias") after actions that trigger API calls; do not use cy.wait(ms) for timing.
  • Write tests from the user's perspective: "fill in the form, click submit, see confirmation."
  • Use fixtures for large API response data; inline small responses in cy.intercept().
  • Run Cypress in CI with --record for test replay, screenshots, and video on failure.

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/cypress-mrwakcuf/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/cypress-mrwakcuf' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/cypress-mrwakcuf/download' --output '.skill-downloads/cypress-mrwakcuf/SKILL.md.part' && mv '.skill-downloads/cypress-mrwakcuf/SKILL.md.part' '.skill-downloads/cypress-mrwakcuf/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

This file does not provide a usable name/description header for this native procedure. It remains available to download and inspect; use the manual method below.

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/cypress-mrwakcuf/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills