Device Farm generates a .xctestrun file and the location is stored at $DEVICEFARM_XCUITESTRUN_FILE. However, my test fails everytime
xcodebuild: error: Failed to build workspace temporary with scheme Transient Testing.
Reason: There are no test bundles available to test.
Recovery suggestion: Ensure that all package dependencies have resolved and that there are no missing test bundles in the active scheme or test plan.
I print out the .xctestrun file in the yaml file and see that it's contents are not in the same format as the .xctestrun file created by Xcode during my build. Specifically the top-level object of the generated file shows up as a child in the Xcode file with the path TestConfigurations/TestTargets. The generated file is missing lots of top level objects like TestConfigurations, ContainerInfo, TestPlan, and CodeCoverageBuildableInfos.
Has anyone had success running iOS UI Tests in a custom environment using the generated .xctestrun file? According to the man xcodebuild.xctestrun output, the generated file is not in the correct format.
I've tried downloading a copy of the xctestrun file and using it locally and the tests also fail. I am able to successfully run the test locally when using the .xctestrun file created by Xcode.
In order to make this work I had to bypass all the automatic stuff that Device Farm does. I upload my own
.xctestrunfile instead of using the one generated by Device Farm. Then in my YAML test spec, I create a folder/tmp/rootand copy my.xctestrunfile into it. Then I create/tmp/root/Debug-iphoneosand copy both my app and test package.appfiles into that folder. This mimics my local environment exactly, and it successfully runs the test