| name | guide-swift-testing |
| description | 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. |
| type | guide |
| origin | https://github.com/twostraws/Swift-Testing-Agent-Skill |
| license | MIT |
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
- Ensure tests follow core conventions using
references/core-rules.md.
- Validate structure, assertions, dependency injection, and best practices using
references/writing-better-tests.md.
- Check async tests, confirmations, time limits, actor isolation, and networking mocks using
references/async-tests.md.
- Ensure new features like raw identifiers, exit tests, and attachments are used correctly using
references/new-features.md.
- If migrating from XCTest, follow
references/migrating-from-xctest.md.
If doing partial work, load only the relevant reference files.
References
| Topic | Reference |
|---|
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 |