Contents

noahkamara/swift-xctesting

> Archived because Xcode 16 supports Swift Testing directly

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

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

Package Metadata

Repository: noahkamara/swift-xctesting

Default branch: main

README: README.md