A new testing harness #26
Comments
Expanded out of #22 |
XCTest is now OSS, could make life easier. |
The open-source implementation of XCTest is a simple program that prints to stdout. Last we spoke, this project involved IPC, some reverse-engineering of iOS simulator internals, and more--open-source XCTest isn't going to be of much help there. |
^ This is a legit point |
Alright so, based on what I learned in code spelunking in Injection for Xcode, here's what I think should happen. Let's just call it instatests for now. Create a gem called Why a CocoaPods plugin? Well we need to add code to the app to start listening out for , people shouldn't need to have it on every computer and ideally it shouldn't get shipped with your app's source, sounds exactly like cocoapods-keys. The code inside the pod needs to:
This plugin has a command Once a working build is done, then I can look at standardizing all the communication points. |
Depends. How will the bundles with new code be compiled? By Xcode or do you want to do a stand-alone thing, possibly with a Clang compilation database? |
Simplest feels to be the same as injection - read the build log, find the section for that file, and reuse that. In injection that Though I do want to consult Diamond's reloaded before making the first approach |
Current feels on a name, xctestjam |
Don't think XPC is probably the right communication method, weirdly enough, JSCore should have a working websocket, could use that as the intermediary for the client/server to bi-directionally communicate. Meta. |
Got a web socket to connect between a ruby webserver and a WKWebView websocket - looks like the simplest way to start |
Now that I've started this, https://github.com/orta/cocoapods-xcautotest/ I'd like to try scope 1.0 as "runs tests, reliably" and 2.0 as "runs tests reliably, in the background, on a separate sim." This looks a bit tough, but definitely doable, as it looks like I'll have to create ruby bindings for the frameworks generated by https://github.com/facebook/FBSimulatorControl - they have a command-line tool but it looks like it depends on having Carthage, which I'd rather not have as a dependency. |
Seems to only be for testing (OCMock). |
Nah, it is used for the the command-line tool itself - the frameworks themselves are dependecy-less - https://github.com/facebook/FBSimulatorControl/tree/master/fbsimctl |
@orta @alloy As far as Carthage goes we need it for two reasons:
If you need to build the Frameworks ( If you're interested in linking against the |
Awesome - thanks @lawrencelomax 👍 |
Rack for Testing, using XPC to communicate between each part of the system.
With the MVP goal to be able to run a test harness inside a hosted app and to be able to pass tests in via XPC to be ran without restarting the sim.
Ideally can split into three parts
[ UI ] <---> [ Test Compiler ] <---> [Test Runner ]
Wherein the same UI could exist for many types of languages and test compilers, runners don't have to be some async running process. Could just be the same thing ran instantly but provides a separation against crashes etc.
Initially letting @modocache take a stab at this, but we can take a shot anytime @alloy feels he has some space. Assigning to him, as it is would be largely his work I expect.
The text was updated successfully, but these errors were encountered: