paypal / Illuminator

iOS Automator
Apache License 2.0
38 stars 27 forks source link

Please clarify the future of this project in light of UIAutomation being deprecated by XCode 7 #94

Open johnnylambada opened 8 years ago

johnnylambada commented 8 years ago

Hey All,

We're about to undertake a major rewrite of our UI tests and until a few days ago we were going to use illuminator. Then we discovered that UIAutomation is deprecated by XCode7. In light of that, can you shed some light on the future of illuminator? Are you going to allow for the same syntax on top of the new framework?

Reference: https://developer.apple.com/library/prerelease/ios/releasenotes/DeveloperTools/RN-Xcode/Chapters/xc7_release_notes.html (search for "Deprecation").

Thanks!

ianfixes commented 8 years ago

We've been discussing this issue fairly heavily since WWDC in June, when Apple first announced this would happen. Within the past week, Apple has started closing radar bugs that we've filed against UIAutomation, citing that the project is "no longer supported".

Obviously, there is no future for this project in its current form -- no way to run it once Apple's UIAutomation goes away. We are hoping to retain (in XCTest) some of the major conveniences that we've written; the purpose of Illuminator is to make testing reliable, repeatable, and above all easy for developers to do.

We have plans to migrate the following features into the new XCTest environment:

We are aware of the following challenges in migrating Illuminator features into XCTest:

Now that Xcode 7 is finally out, we are able to start looking into these and other issues.

ianfixes commented 8 years ago

The short answer is that we have a lot invested (in terms of tests) in Illuminator, and our current plan is to support Illuminator as long as Apple supports UIAutomation. Whether our extensions to XCTest will be part of this project or another Apache-licensed project is currently unclear, but in either case we intend to provide a migration guide for all the features that we have.

ianfixes commented 8 years ago

We are currently blocked due to Apple's implementation of XCUIElement, which appears to call XCTAssert inside various properties (instead of throwing exceptions). OpenRadar issue is here, and forum thread started here.

This issue would affect any & all possible XCTest-based frameworks written in Swift or Objective C, as I have been unable to find a workaround -- avoiding the error since I can't catch it.

ianfixes commented 7 years ago

Now that iOS 8 support is being dropped in most places, a lot of the integration headaches we were having have disappeared. Swift 2.3 didn't hurt either.

I'm pleased to (finally) announce that we have a working Swift implementation (minimal for now) of Illuminator, in #99, which is now passing CI

The current roadmap:

Probably other things too.

We are operational in XCode 8, btw. I haven't tested 7.x