[swift-corelibs-dev] SwiftXCTest proposals to make it more useful as a framework and for other platforms

Brian Gesiak modocache at gmail.com
Fri Dec 2 12:00:28 CST 2016


Hey Ilya,

I'm glad you're thinking about how to use corelibs-xctest on mobile
devices. I'd like to prepare it for Android as well, and I think there's a
lot of overlap here.

> This proposal is because Swift has very poor reflection at the moment. So
I suggest creating a generator (pre-build script) for Swift test cases that
for example is able analysing concrete folder with swift files and generate
e.g. TestCases.swift file. This script is intended to be used manually.

You should check out https://bugs.swift.org/browse/SR-710. There's been a
great deal of discussion on this topic in the past. I think we left off
with the idea that we should use SourceKit to generate the list of tests
(+cc Daniel Dunbar). This work has largely been abandoned. If you'd like to
pick it up, you could have huge impact!

I'm not sure I understand your first two points. Are you suggesting that we
implement some method of kicking off tests on an iOS simulator, but only
when corelibs-xctest framework is linked with the application bundle...?
I'd appreciate it if you could explain what you mean in more detail.

- Brian Gesiak


On Fri, Dec 2, 2016 at 5:57 AM, Ilya Laryionau via swift-corelibs-dev <
swift-corelibs-dev at swift.org> wrote:

> Hello Community,
>
> I’m working on adding iOS platform support for SwiftXCTest. So I’ve have
> the following proposals and would like to hear feedback from the community.
>
>    1. SwiftXCTest runs the tests in a way `XCTMain([
>    testCase(TestFoo.allTests) ])`. XCTMain supports only Linux / FreeBSD /
>    macOS. So I suggest introducing an API that will provide a similar way of
>    running tests as XCTMain, but in a case using SwiftXCTest as a framework
>    e.g. on iOS. It could be the same logic that just returns exit code, when
>    XCTMain just exits with this code.
>    2. The suggestion above (number 1) is good, but too simple for using
>    SwiftXCTest as a framework, since we only have exit code and debug logs. So
>    my second proposal is providing mechanism of initialising root test suite
>    with array of testCases (array of XCTestCaseEntry objects) with the same
>    structure that XCTMain does. This isn’t possible now since XCTestCaseSuite
>    class that is used to initialise root test suite (see XCTMain.swift line
>    80) is internal.
>    3. This proposal is because Swift has very poor reflection at the
>    moment. So I suggest creating a generator (pre-build script) for Swift test
>    cases that for example is able analysing concrete folder with swift files
>    and generate e.g. TestCases.swift file. This script is intended to be used
>    manually.
>
> Looking forward to any feedback.
>
> Ilya
>
> _______________________________________________
> swift-corelibs-dev mailing list
> swift-corelibs-dev at swift.org
> https://lists.swift.org/mailman/listinfo/swift-corelibs-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-corelibs-dev/attachments/20161202/6131b893/attachment.html>


More information about the swift-corelibs-dev mailing list