# test-modernizer

Переводит тесты с XCTest на Swift Testing и обновляет старые проверки. Пригодится при рефакторинге тестовых наборов в проектах на Swift.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 696 установок · ★ 352
- Автор: superagents-lab
- Лицензия: не указана · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/superagents-lab/xcode27-skills/tree/HEAD/test-modernizer/SKILL.md
- Обновлён: 2026-06-09
- HTML: https://affpapa.org/nevibecode/skills/test-modernizer

## Что делает

Скилл берёт существующие тесты на базе XCTest и переписывает их под современный фреймворк Swift Testing. Вместо классов `XCTestCase` он создаёт структуры, заменяет методы `setUp` и `tearDown` на инициализаторы `init` и `deinit`, а префикс `test` убирает в пользу аннотации `@Test`.

Старые макросы проверок переводятся на `#expect`, а проверки на отсутствие `nil` — на `try #require`. Если в тестах было задано `continueAfterFailure = false`, скилл заменяет все последующие проверки на `try #require`, чтобы падение сразу прерывало выполнение. Так как XCTest неявно экспортирует Foundation, при удалении старого фреймворка инструмент добавляет явный `import Foundation`, если в файле остаются типы вроде `URL` или `Data`.

На тестах автоматизации интерфейса с API `XCUI*` скилл не сработает: этот фреймворк в Swift Testing не поддерживается.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add superagents-lab/xcode27-skills --skill test-modernizer -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/test-modernizer/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/test-modernizer/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add superagents-lab/xcode27-skills --skill test-modernizer -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/test-modernizer/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add superagents-lab/xcode27-skills --skill test-modernizer -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/test-modernizer/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install superagents-lab/xcode27-skills test-modernizer
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/test-modernizer/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add superagents-lab/xcode27-skills --skill test-modernizer -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/superagents-lab/xcode27-skills --path test-modernizer
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/test-modernizer/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add superagents-lab/xcode27-skills --skill test-modernizer -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/superagents-lab/xcode27-skills/tree/HEAD/test-modernizer/SKILL.md

## Когда брать
- перевести тестовые наборы с XCTest на структуры Swift Testing
- заменить макросы XCTAssert на проверки #expect и #require
- переписать асинхронные ожидания XCTestExpectation через вызовы confirmation
- перенести условия пропуска тестов в атрибуты @Test и @available

## Примеры запросов агенту
- Переведи этот тестовый класс XCTest на Swift Testing
- Обнови проверки в файле FoodTruckTests.swift под новый фреймворк Testing
- Мигрируй assertions и асинхронные ожидания в текущем тестовом файле

## Похожие
- [axiom-testing](https://affpapa.org/nevibecode/skills/axiom-testing.md) — скилл · 1300 установок
- [guide-swift-testing](https://affpapa.org/nevibecode/skills/guide-swift-testing.md) — скилл · 427 установок
- [swift-testing-pro](https://affpapa.org/nevibecode/skills/swift-testing-pro.md) — скилл · 10100 установок
- [performance-profiling](https://affpapa.org/nevibecode/skills/mengto-performance-profiling.md) — скилл · 1400 установок
- [axiom-performance](https://affpapa.org/nevibecode/skills/axiom-performance.md) — скилл · 1300 установок
- [ce-test-xcode](https://affpapa.org/nevibecode/skills/ce-test-xcode.md) — скилл · 2900 установок

Из того же набора: [superagents-lab/xcode27-skills](https://affpapa.org/nevibecode/by/superagents-lab/xcode27-skills.md) — 6 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
