К основному содержанию
скилл CX Codex

cypress — скилл для Claude Code: надёжные E2E-тесты

Скилл для написания E2E- и компонентных тестов на Cypress: устойчивые селекторы, ожидания без фиксированных пауз, перехват сети.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add bobmatnyc/claude-mpm-skills --skill cypress -a claude-code
Открыть на GitHub

Что делает cypress

Скилл описывает паттерны Cypress для браузерных тестов и компонентных проверок. Внутри — готовые примеры: минимальный spec, селекторы через data-testid, ожидание по сетевому алиасу вместо cy.wait(1000), подстановка ответов через cy.intercept, кэширование логина через cy.session. Есть раздел про CI: артефакты со скриншотами при падении, опция видео, повторы в run-режиме, параллельный запуск через Cypress Cloud.

Отдельно разобраны антипаттерны и диагностика. Если тест кликает по элементу нестабильно — скилл советует добавить data-testid, проверить видимость через should("be.visible") и дождаться алиаса сети, который отрисовывает элемент. Когда тесты падают только в CI, дело обычно в несовпадении viewport и baseUrl или в локальных seed-данных: данные стоит создавать через API.

Скилл не вызывает модель сам — в нём стоит disable-model-invocation: true, поэтому он подключается как справочник, а не как активный агент. Для компонентных тестов нужен запуск npx cypress open --component и настроенный монтаж компонента. Смешивать тяжёлый перехват сети с проверками против настоящего бэкенда в одном spec не стоит: такие тесты ломаются при первом изменении ответа.

Какие задачи решает

  • написать E2E-тест на критичный пользовательский сценарий
  • убрать фиксированные паузы и ждать по сетевому алиасу
  • закэшировать логин между тестами через cy.session
  • подставить ответ API и убрать зависимость от бэкенда
  • разобраться, почему тесты падают только в CI

Примеры запросов агенту

  • напиши E2E-тест на сохранение пользователя с селектором data-testid
  • перепиши cy.wait(1000) на ожидание сетевого алиаса
  • добавь компонентный тест для Button через cy.mount

Как установить cypress

1Через Skills CLI (Vercel)

npx skills add bobmatnyc/claude-mpm-skills --skill cypress -a claude-code

2Вручную: положить файлы

~/.claude/skills/cypress/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/cypress/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора65

drizzle-migrations Скилл задаёт порядок работы с базой в TypeScript: сначала SQL-миграция, потом схема. Пригодится, когда схема меняется в нескольких окружениях. CX Codex +1 1 300установок docker Скилл по Docker: помогает агенту писать Dockerfile, собирать образы и поднимать сервисы через Compose. Пригодится, когда проект надо упаковать одинаково для разработки и продакшена. CX Codex +1 1 000установок biome Скилл подсказывает агенту, как прогнать проект через Biome: линтинг, форматирование и сортировка импортов одной командой. CX Codex +1 927установок zod Скилл по библиотеке zod: схемы один раз, а на выходе проверка данных в рантайме и типы TypeScript. Пригодится на формах и API. CX Codex +1 887установок session-compression Скилл с приёмами сжатия многошаговых диалогов: суммаризация, поиск по эмбеддингам, управление контекстом. Пригодится, когда история чата подбирается к лимиту окна. CX Codex +1 642установок opentelemetry Скилл с паттернами OpenTelemetry: трейсы, метрики, логи, проброс контекста и пайплайны Collector. Пригодится, когда сервис пора инструментировать, а не гадать по логам. CX Codex +1 635установок xlsx Скилл для чтения, записи и правки Excel-файлов из кода: openpyxl, pandas и библиотека xlsx для JavaScript. CX Codex +1 588установок wordpress-security-validation Скилл для безопасной разработки плагинов и тем WordPress: санитизация ввода, проверка логики и экранирование вывода. Пригодится, когда обрабатываете формы, AJAX или выводите чужие данные. CX Codex +1 581установок

Похожие

cypress-automation kindlmann Скилл для написания тестов на Cypress в TypeScript: E2E, компонентные тесты, cy.intercept, cy.session и запуск в CI. CX Codex +1 1 000установок cypress-tap cypress-io Управляет запущенной сессией Cypress open через CLI без интерфейса. Помогает прогонять тесты, читать логи репортёра и проверять DOM прямо из чата с агентом. CX Codex +1 2 700установок cypress-author cypress-io Скилл создаёт, обновляет и чинит тесты Cypress — E2E и компонентные. Пригодится, когда просишь агента написать тесты, а он не знает, с чего начать. CX Codex +1 9 000установок cypress-flake-fixer официальный github Скилл ищет в существующем наборе тестов Cypress шаблоны, из-за которых тесты падают через раз, и правит их. Пригодится перед обновлением до Cypress 15 или 16. ★ 40 418звёзд репо e2e-testing-automation aj-geddes Скилл помогает писать end-to-end тесты: браузерные сценарии, проверка пользовательских путей и связки фронтенда с бэкендом. CX Codex +1 689установок cypress-defect-tracking-cursorrules-prompt-file PatrickJS Правило для Cursor, которое превращает агента в QA-инженера: пишет тесты Cypress с тегами команд, категорий и case ID и собирает отчёты через qa-shadow-report. ★ 41 011звёзд репо

Рядом в теме «Тесты и QA»

Всё по теме «Тесты и QA» →

Вопросы о cypress

Как установить cypress в Claude?

Выполните npx skills add bobmatnyc/claude-mpm-skills --skill cypress -a claude-code. Файл скилла появится по пути ~/.claude/skills/cypress/SKILL.md.

Что делает скилл cypress?

Собирает паттерны Cypress для E2E- и компонентных тестов: устойчивые селекторы, детерминированные ожидания, перехват сети, работа с авторизацией и настройка CI.

Почему тесты падают только в CI?

Скилл советует увеличить повторы в run-режиме, включить скриншоты при падении, сверить viewport и baseUrl с окружением CI и создавать данные через API вместо локальных seed-файлов.

Исходный текст

SKILL.md · MIT
---
name: cypress
description: "Cypress end-to-end and component testing patterns for web apps: reliable selectors, stable waits, network stubbing, auth handling, CI parallelization, and flake reduction"
user-invocable: false
disable-model-invocation: true
version: 1.0.0
category: toolchain
author: Claude MPM Team
license: MIT
progressive_disclosure:
  entry_point:
    summary: "Write reliable Cypress E2E and component tests with stable selectors, deterministic waits, and network control"
    when_to_use: "When building browser E2E suites, debugging flaky UI tests, validating critical user flows, or adding component tests to a modern frontend"
    quick_start: "1. Install Cypress 2. Add data-testid selectors 3. Use cy.intercept for network control 4. Avoid fixed sleeps 5. Run in CI with artifacts"
  token_estimate:
    entry: 130
    full: 5200
context_limit: 900
tags:
  - javascript
  - testing
  - cypress
  - e2e
  - component-testing
  - ci
  - flake-reduction
requires_tools: []
---

# Cypress (E2E + Component Testing)

## Overview

Cypress runs browser automation with first-class network control, time-travel debugging, and a strong local dev workflow. Use it for critical path E2E tests and for component tests when browser-level rendering matters.

## Quick Start

### Install and open

```bash
npm i -D cypress
npx cypress open
```

### Minimal spec

```ts
// cypress/e2e/health.cy.ts
describe("health", () => {
  it("loads", () => {
    cy.visit("/");
    cy.contains("Hello").should("be.visible");
  });
});
```

## Core Patterns

### 1) Stable selectors

Prefer `data-testid` (or `data-cy`) attributes for selectors. Avoid brittle CSS chains and text-only selectors for critical interactions.

```html
<button data-testid="save-user">Save</button>
```

```ts
cy.get('[data-testid="save-user"]').click();
```

### 2) Deterministic waiting (avoid fixed sleeps)

Wait on app-visible conditions or network aliases rather than `cy.wait(1000)`.

```ts
cy.intercept("GET", "/api/users/*").as("getUser");
cy.visit("/users/1");
cy.wait("@getUser");
cy.get('[data-testid="user-email"]').should("not.be.empty");
```

### 3) Network control with `cy.intercept`

Stub responses for deterministic tests and speed. Keep a small set of “real backend” smoke tests separate.

```ts
cy.intercept("GET", "/api/users/1", {
  statusCode: 200,
  body: { id: "1", email: "[email protected]" },
}).as("getUser");
```

### 4) Authentication strategies

Prefer `cy.session` to cache login for speed and stability.

```ts
// cypress/support/commands.ts
Cypress.Commands.add("login", () => {
  cy.session("user", () => {
    cy.request("POST", "/api/auth/login", {
      email: "[email protected]",
      password: "password",
    });
  });
});
```

```ts
// e2e spec
beforeEach(() => {
  cy.login();
});
```

## Component Testing

Run component tests to validate UI behavior in isolation while keeping browser rendering.

```bash
npx cypress open --component
```

```ts
// cypress/component/Button.cy.tsx
import React from "react";
import Button from "../../src/Button";

describe("<Button />", () => {
  it("clicks", () => {
    cy.mount(<Button onClick={cy.stub().as("onClick")}>Save</Button>);
    cy.contains("Save").click();
    cy.get("@onClick").should("have.been.calledOnce");
  });
});
```

## CI Patterns

### Artifacts (videos/screenshots)

Store artifacts for failed runs and keep videos optional to reduce storage.

```ts
// cypress.config.ts
import { defineConfig } from "cypress";

export default defineConfig({
  video: false,
  screenshotOnRunFailure: true,
  retries: { runMode: 2, openMode: 0 },
});
```

### Parallelization (Cypress Cloud)

Parallelize long E2E suites via Cypress Cloud when runtime dominates feedback loops.

## Anti-Patterns

- Use `cy.wait(1000)` as a synchronization mechanism.
- Select elements via deep CSS paths.
- Mix heavy network stubbing with “real backend” assertions in the same spec.
- Depend on test order; isolate state with `cy.session` and per-test setup.

## Troubleshooting

### Symptom: flaky click or element not found

Actions:
- Add a `data-testid` hook for the element.
- Assert visibility before interaction (`should("be.visible")`).
- Wait on network alias for the data that renders the element.

### Symptom: tests fail only in CI

Actions:
- Increase run-mode retries and record screenshots on failure.
- Verify viewport and baseUrl config match CI environment.
- Eliminate reliance on local-only seed data; create data via API calls.

## Resources

- Cypress docs: https://docs.cypress.io/
- Best practices: https://docs.cypress.io/guides/references/best-practices

© Claude MPM Team · MIT · bobmatnyc/claude-mpm-skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой