Swift Testing Pro — скилл

Скилл Пола Хадсона по Swift Testing: параметризованные тесты, подтверждения, тесты на завершение процесса и переход с XCTest

  • 475 ★ репозитория
  • Последний коммит
  • MIT
Скилл

Минимальный доступ

Почему такой уровень

  • Скилл состоит из текстовых правил и справочников, сам ничего не запускает, но агент по ним правит ваши тесты.
Все причины и проверки

twostraws/swift-testing-agent-skill

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add skills/swift-testing-pro

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Минимальный доступИнструмент ничего не запускает и не ходит в сеть.

  • Скилл состоит из текстовых правил и справочников, сам ничего не запускает, но агент по ним правит ваши тесты.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Swift Testing Pro — скилл, который пишет и проверяет тесты на Swift Testing по современным API. Он целится в ошибки, которые агенты повторяют, потому что учились на XCTest: класс `XCTestCase` вместо структуры, `setUp` вместо `init`, лишний `@Suite` над каждым набором, восклицательный знак внутри `#expect`. Пять справочных файлов разбирают основные правила, гигиену тестов и скрытые зависимости, асинхронные тесты с `confirmation()` и лимитами времени, новинки Swift 6.2 и перевод с XCTest. К новинкам относятся имена тестов в обратных кавычках, подтверждения по диапазону, области действия теста, «exit tests» и вложения. Скилл считает главным источником установленный у пользователя инструментарий, потому что документация Apple по свежим API местами устарела. Про новые приемы он подсказывает, но по умолчанию не вводит их в проект, где их еще нет. При просьбе о проверке результат идет списком по файлам: строка, нарушенное правило, исправление до и после, затем итог по важности.

Для кого. Разработчикам под iOS и macOS, которые пишут и проверяют тесты на Swift Testing с помощью Claude Code, Codex, Cursor или Gemini CLI.

Подходит, если

  • Проект переезжает с XCTest, и тесты нужно перевести на `@Test` и `#expect` без потери смысла.
  • Агент написал тестовый класс с `setUp`, и его нужно привести к идиоматичному виду.
  • Десяток похожих тестов сворачивается в один параметризованный.
  • Код с известной ошибкой оборачивается в `withKnownIssue`, чтобы тест не падал, пока баг не исправлен.

Не подходит, если

  • Проверяется интерфейс приложения: Swift Testing тесты UI не поддерживает, там остается XCTest.
  • Цель развертывания работает на Swift ниже 6.2: часть приемов, например имена тестов в обратных кавычках, требует 6.2.
  • Разбор нужен по SwiftUI, SwiftData или конкурентному коду: у автора под них отдельные скиллы.

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

Переведи тесты из папки Tests/ с XCTest на Swift Testing и объедини похожие проверки в параметризованные тесты.

Ограничения

Скилл рассчитан на Swift 6.2 и новее, на более старом инструментарии часть советов не сработает. Тесты интерфейса он не покрывает. Автор намеренно сделал его коротким и не пересказывает основы Swift Testing, которые модель уже знает, поэтому как учебник он не годится. Вызов зависит от агента: в Claude Code это `/swift-testing-pro`, в Codex `$swift-testing-pro`, в остальных скилл подхватывается по описанию или фразе «используй скилл Swift Testing Pro».

Как отключить. В Claude Code выполните `/plugin uninstall swift-testing-pro@swift-testing-agent-skill`. Скилл, поставленный через `npx skills`, удалите тем же CLI или вручную из каталога скиллов агента.

Частые вопросы

Как поставить скилл в Claude Code?

Выполните `/plugin marketplace add twostraws/Swift-Testing-Agent-Skill`, затем `/plugin install swift-testing-pro@swift-testing-agent-skill`. Для Codex, Gemini и Cursor подойдет `npx skills add` с флагом `--skill swift-testing-pro`; CLI спросит, каких агентов и на какой уровень ставить.

Как вызвать скилл на частичную проверку?

Добавьте задачу к имени: `/swift-testing-pro Make sure my tests are fully parameterized` в Claude или `$swift-testing-pro Add exit tests to my test suites` в Codex. Можно написать и обычной фразой, например «используй скилл Swift Testing Pro для поиска слабых тестов».

Нужно ли ставить `@Suite` на каждый набор?

Нет, любой тип с методами `@Test` уже считается набором. `@Suite` нужен, когда набору дают имя или признаки, например `@Suite(.tags(.networking))`.

Почему нельзя писать `#expect(!isLoggedIn)`?

Восклицательный знак ломает разбор выражения макросом, и при падении отчет бесполезен. Скилл требует `#expect(isLoggedIn == false)`.

Подходит ли скилл для тестов интерфейса?

Нет, Swift Testing такие тесты не поддерживает, для них остается XCTest. Скилл прямо напоминает об этом агенту.

Обсуждение

Вопросов и отзывов пока нет.

Скиллы

Swift Testing Agent Skill

swift-testing-agent-skill

Скилл по Swift Testing от Антуана ван дер Ли: новые API, миграция с XCTest, параметризованные тесты и плоские тесты. Для Claude Code и других агентов

СкиллМинимальный доступ479Звезды репозитория
Официальный

Скилл для тестов React Native Testing Library: запросы, userEvent, асинхронность и различия между версиями 13 и 14

СкиллМинимальный доступ3,4 тыс.Звезды репозитория

Скилл ведет Claude Code и Codex через пишущий и чинящий цикл автотестов API на pytest с проверкой реальным запуском.

СкиллРасширенный доступ171Звезды репозитория

57 справочных файлов по тестам Playwright на TypeScript: агент берет из них нужный по задаче, от локаторов до шардирования в CI

СкиллМинимальный доступ417Звезды репозитория

Руководства для агента, который пишет и чинит тесты Playwright: выбор локаторов, ожидания и диагностика сбоев в CI

СкиллМинимальный доступ411Звезды репозитория
Официальный

Скилл noqa-testing учит агента тестировать iOS и Android: читать экран, нажимать, писать кейсы и гонять их на реальном телефоне

СкиллРасширенный доступ191Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйЗвезды репозиторияГлавное отличие
Swift Testing Pro (эта карточка)нет475
Swift Testing Agent Skillнет479скилл Антуана ван дер Ли с новыми API, миграцией с XCTest и плоскими тестами; здесь правила Пола Хадсона под ошибки агентов, с отдельными справочниками по асинхронности и новинкам Swift 6.2
Swift Concurrency Proнет582скилл того же автора для конкурентного кода на Swift; здесь проверяются только тесты

Коротко о README

Автор написал книгу по Swift Testing и обновляет ее вместе с языком, а правила скилла выросли из этого материала. Вкладчикам он велит писать коротко и не повторять то, что модели уже знают, чтобы не тратить токены пользователя.

Бейдж для README

Исходный SKILL.md

---
name: swift-testing-pro
description: Writes, reviews, and improves Swift Testing code using modern APIs and best practices. Use when reading, writing, or reviewing projects that use Swift Testing.
license: MIT
metadata:
  author: Paul Hudson
  version: "1.0"
---

Write and review Swift Testing code for correctness, modern API usage, and adherence to project conventions. Report only genuine problems - do not nitpick or invent issues.

Review process:

1. Ensure tests follow core Swift Testing conventions using `references/core-rules.md`.
1. Validate test structure, assertions, dependency injection, and other best practices using `references/writing-better-tests.md`.
1. Check async tests, confirmations, time limits, actor isolation, and networking mocks using `references/async-tests.md`.
1. Ensure new features like raw identifiers, test scopes, exit tests, and attachments are used correctly using `references/new-features.md`.
1. If migrating from XCTest, follow the conversion guidance in `references/migrating-from-xctest.md`.

If doing partial work, load only the relevant reference files.


## Core Instructions

- Target Swift 6.2 or later, using modern Swift concurrency.
- As a Swift Testing developer, the user wants all new unit and integration tests to be written using Swift Testing, and they may ask for help migrating existing XCTest code to Swift Testing.
- Swift Testing does *not* support UI tests – XCTest must be used there.
- Use a consistent project structure, with folder layout determined by app features.

Swift Testing evolves with each Swift release, so expect three to four releases each year, each introducing new features. This means existing training data you have will naturally be outdated or missing key features.

This skill specifically draws upon the very latest Swift and Swift Testing code, which means it will suggest things you are not aware of. Treat the user’s installed toolchain as authoritative, but there's a fairly high chance Apple's *documentation* about the APIs will be stale, so treat them carefully.


## Output Format

If the user asks for a review, organize findings by file. For each issue:

1. State the file and relevant line(s).
2. Name the rule being violated.
3. Show a brief before/after code fix.

Skip files with no issues. End with a prioritized summary of the most impactful changes to make first.

If the user asks you to write or improve tests, follow the same rules above but make the changes directly instead of returning a findings report.

Сообщить о проблеме

Foxx AISwift Testing Pro
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.