In order to execute tests on iOS simulators marathon requires ssh access to Apple hardware capable of executing tests. Simulators have to be already pre-created when the test run is executed.
Currently iOS device provider reads the available devices from the Marathondevices file which has the following format:
- host: "10.0.0.1" udid: "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" - host: "10.0.0.2" udid: "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
This is basically a list of simulator UDID’s with the IP of the MacOS system.
Logging into the machine is done using private key authentication which is specified using vendor specific options.
To indicate that you’re using a vendor config for android you have to specify the type in configuration as following:
vendorConfiguration: type: "iOS" additional_option1: ... additional_option2: ...
Specify your derived data path in order to execute the tests
In order to get the list of tests marathon parses your Swift source code and finds all test classes and methods based on regex specified in the core configuration.
In order to authenticate using ssh you have to provide a private key and a username as following:
remoteUsername: "username" remotePrivateKey: "/home/user/.ssh/id_rsa"
Force a specific xctestrun to be used
Specify rsync binary on the remote machine manually
Use this option for a very verbose debug output of ssh transport layer
If your Marathondevices file is not in the project root then you can override this here