Skip to content
This repository has been archived by the owner on Jun 24, 2024. It is now read-only.
/ swift-xctesting Public archive

A Swift Macro for generating XCTest compatible scaffolding around tests written for swift-testing

Notifications You must be signed in to change notification settings

NoahKamara/swift-xctesting

Repository files navigation

XCTesting

Archived because Xcode 16 supports Swift Testing directly

A Swift Macro for generating XCTest compatible scaffolding around tests written for swift-testing

This allows Test Suites & Cases Placeholders to be shown in Even tough you shouldn't need more than the Getting Started Section there is an in progress Documentation hosted here: +Documentation

Getting Started

  • Swift Package Index
  • Documentation

Installing

First add XCTesting as a depency to your Swift Package or Xcode Project

// Dependency
.package(url: "https://github.com/NoahKamara/swift-xctesting.git", from: "0.1.0")

// Target Dependency
.product(name: "Testing", package: "swift-testing")

Usage

Simply add the @XCTesting attribute to a Test or Suite and it will generate a XCTestCase with dummy tests

@XCTesting
@Suite
struct MyTests {
    @Test(arguments: [1,2,3])
    func example(arg: Int) {
        #expect(arg > 0
    }
}

// Expansion from XCTesting
class MyTests_XCTest: XCTestCase {
    func testExample() async throws {
        try await Tests.run(suite: MyTests.self, testName: "testExample(arg:)", hostedBy: self)
    }
}

If you apply @XCTesting to standalone test function it will generate a XCTestCase with only one dummy

be warned: this might clutter xcodes test output

@Test(arguments: [1,2,3])
func standaloneExample(arg: Int) {
    #expect(arg > 0)
}

// Expansion from XCTesting
class standaloneExample_XCTest: XCTestCase {
    func testStandaloneExample() async throws {
        try await Tests.run(testName: "testExample(arg:)", hostedBy: self)
    }
}

Contributing

Contributions are always welcome!

The Scope of this project should remain bridging swift-testing and XCTest for IDE support

Roadmap

  • Scaffolding for Suites
  • Scaffolding for Functions
  • Support Failures
  • Support Skip
  • Add better documentation
  • Investigate better supporting traits
  • ...

About

A Swift Macro for generating XCTest compatible scaffolding around tests written for swift-testing

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published