Apple-skills guide-swift-testing

Swift Testing patterns — structs over classes, async confirmations, parameterized tests, exit tests, attachments, common agent mistakes. Use when writing, reviewing, or migrating Swift Testing code.

install
source · Clone the upstream repo
git clone https://github.com/vabole/apple-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/vabole/apple-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/guide-swift-testing" ~/.claude/skills/vabole-apple-skills-guide-swift-testing && rm -rf "$T"
manifest: skills/guide-swift-testing/SKILL.md
source content

Guide Skill — This is an expert workflow/pattern guide, not API reference documentation. Originally from twostraws/Swift-Testing-Agent-Skill by Paul Hudson. MIT License.

Swift Testing Patterns

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.

Core Instructions

  • Target Swift 6.2 or later, using modern Swift concurrency.
  • Swift Testing does not support UI tests — XCTest must be used there.
  • Do not rewrite existing XCTest to Swift Testing unless requested.

Review Process

  1. Ensure tests follow core conventions using
    references/core-rules.md
    .
  2. Validate structure, assertions, dependency injection, and best practices using
    references/writing-better-tests.md
    .
  3. Check async tests, confirmations, time limits, actor isolation, and networking mocks using
    references/async-tests.md
    .
  4. Ensure new features like raw identifiers, exit tests, and attachments are used correctly using
    references/new-features.md
    .
  5. If migrating from XCTest, follow
    references/migrating-from-xctest.md
    .

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

References

TopicReference
Structs over classes,
@Suite
, parallel execution,
withKnownIssue
, tags
references/core-rules.md
Test hygiene, structure, DI,
#expect
vs
#require
,
Issue.record()
, verification methods
references/writing-better-tests.md
Serialized tests,
confirmation()
, time limits, actor isolation, mocking networking
references/async-tests.md
Raw identifiers, exit tests, attachments, test scoping traits, range-based confirmations
references/new-features.md
XCTest-to-Swift Testing conversion, assertion mappings, floating-point tolerance
references/migrating-from-xctest.md