This skill helps you write and migrate Swift tests using Apple's modern Swift Testing framework instead of XCTest. It guides you through expect/require macros, parameterized tests, parallel execution, and traits for metadata and filtering. The agent pushes you toward isolated, parallel-safe tests by default and only suggests serialization as a last resort. It's opinionated about incremental migration: convert assertions first, then refactor suites, then add parameterization. Use it when modernizing legacy XCTest suites, debugging flaky tests, or setting up new test targets on Apple platforms or Swift server projects. The verification checklist and routing map keep you from drowning in reference docs.
npx -y skills add avdlee/swift-testing-agent-skill --skill swift-testing-expert --agent claude-codeInstalls into .claude/skills of the current project.
Use this skill to write, review, migrate, and debug Swift tests with modern Swift Testing APIs. Prioritize readable tests, robust parallel execution, clear diagnostics, and incremental migration from XCTest where needed.
XCUIApplication), performance metrics (XCTMetric), and Objective-C-only test code.#expect as the default assertion and use #require when subsequent lines depend on a prerequisite value..serialized..enabled, .disabled, .timeLimit, .bug, tags) over naming conventions or ad-hoc comments.@available on test functions for OS-gated behavior instead of runtime #available checks inside test bodies; never annotate suite types with @available.Testing in test targets, never in app/library/binary targets.references/fundamentals.md#expect, #require, and throw expectations -> references/expectations.mdreferences/traits-and-tags.mdreferences/parameterized-testing.md.serialized, isolation strategy -> references/parallelization-and-isolation.mdreferences/performance-and-best-practices.mdreferences/async-testing-and-waiting.mdreferences/migration-from-xctest.mdreferences/xcode-workflows.mdreferences/_index.mdtestFooCaseA/testFooCaseB/... methods -> replace with one parameterized @Test(arguments:).try #require(...) then assert on unwrapped value..serialized only as a transition step.withKnownIssue for temporary known failures to preserve signal.CustomTestStringConvertible for focused test diagnostics.#require where failure should stop the test.references/_index.mdreferences/fundamentals.mdreferences/expectations.mdreferences/traits-and-tags.mdreferences/parameterized-testing.mdreferences/parallelization-and-isolation.mdreferences/performance-and-best-practices.mdreferences/async-testing-and-waiting.mdreferences/migration-from-xctest.mdreferences/xcode-workflows.mdwshobson/agents
dbt-labs/dbt-agent-skills
github/awesome-copilot