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.
Use when adding, refactoring, or stabilizing Cypress tests for a web app, or when setting up Cypress component tests and CI runs.
Do not use when the project uses a different test framework or needs guidance on non-browser testing.
Security analysis
SafeThis 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 madeExamples
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.Configure Cypress component testing for our React app, add tests for the Button and LoginForm components, and include them in CI.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-testidordata-cyattributes withcy.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, andcy.wait("@alias")after actions that trigger calls instead ofcy.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 --keyfor Cypress Cloud integration with--parallelto split tests across machines, and--browserto specify the browser. - When setting up the project, configure
cypress.config.tswithbaseUrl, 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:
- Set up test with
cy.visit("/products")and select a product - Intercept the cart API with
cy.intercept("POST", "/api/cart")and alias it - Fill in shipping form using
cy.get("[data-testid='email']").type(...) - 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:
- Install
@cypress/reactand configure component testing incypress.config.ts - Create stories for key components using
cy.mount(<Component />) - Test interactions with
cy.get().click()and assert DOM changes - Add to CI pipeline alongside E2E tests
Output: Isolated component tests running in a real browser with full Cypress API.
Guidelines
- Use
data-testidattributes 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 usecy.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
--recordfor 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 filesThis 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.mdFrom 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.
ClickHouse Performance Comparison
Testing
Evaluate ClickHouse performance test results, check PR performance changes, compare with history, and assess whether a result is actionable.
Analyze CI Performance Reports
Testing
Analyze CI performance comparison reports for a ClickHouse PR. Cross-references master history to distinguish real regressions from flaky tests.
Santa Method
Testing
Multi-agent adversarial verification with two independent reviewers. Output is checked twice and iteratively fixed until both pass before shipping.