Swift Testing Pro — скилл
Скилл Пола Хадсона по Swift Testing: параметризованные тесты, подтверждения, тесты на завершение процесса и переход с XCTest
- 475 ★ репозитория
- Последний коммит
- MIT
Минимальный доступ
Почему такой уровень
- Скилл состоит из текстовых правил и справочников, сам ничего не запускает, но агент по ним правит ваши тесты.
Установка
- Работает в
В терминале, через 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 и других агентов
Скилл для тестов React Native Testing Library: запросы, userEvent, асинхронность и различия между версиями 13 и 14
Скилл ведет Claude Code и Codex через пишущий и чинящий цикл автотестов API на pytest с проверкой реальным запуском.
57 справочных файлов по тестам Playwright на TypeScript: агент берет из них нужный по задаче, от локаторов до шардирования в CI
Руководства для агента, который пишет и чинит тесты Playwright: выбор локаторов, ожидания и диагностика сбоев в CI
Скилл noqa-testing учит агента тестировать iOS и Android: читать экран, нажимать, писать кейсы и гонять их на реальном телефоне
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Звезды репозитория | Главное отличие |
|---|---|---|---|
| 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.