I have an iOS application, and I want to put it in continuous integration. The strategy I'm using to do that is trying to run the tests from the command line.
I'm trying to do it using the following script:
TRACETEMPLATE="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate"
instruments -t $TRACETEMPLATE build/Release-iphonesimulator/MyApp.app -e UIACSCRIPT "UnitTests/SomeTest.js"
SomeTest.js is a simple javascript file that I can run in Instrumentation inside Xcode and it works. I build my application using:
xcodebuild -alltargets -sdk iphonesimulator5.1
and this generates the MyApp.app. I can run the application from Xcode in the simulator just fine, however, when I try to run by the instruments, I get a box saying that there is an unknown error and in the command line it prints:
2012-05-15 15:32:59.928 instruments[17548:1d03] Recording cancelled : At least one target failed to launch; aborting run
Instruments Trace Error : Failed to start trace.
Can anyone give me any help/suggestions about what might be happening and how can I fix this?
Also, it always open the iPad simulator? Can I make it that it opens any simulator I want?
To run functional tests from a command line, you use the testrunner. bat/. sh file that is located in the <SoapUI>\bin folder.
In the Project Path field, enter the path to the directory that contains the application-under-test job on the test target machine. For example, enter. c:\cmd-line-scripts. Click Go.
I was getting this same error and nearly pulled my hair out trying to solve it. The error messages are completely unhelpful.
What ended up being the problem for me was the .app file that I was pointing to. Once I found the "right" .app file that was deeply buried in the 5.1 Simulator folder, I was able to finally run UIAutomation tests from the command line with Xcode 4.3.
The path to the .app that worked for me:
~/Library/Application\ Support/iPhone\ Simulator/5.1/Applications/{string-of-numbers-and-letters}/MyApp.app/
Here is the full command I'm using to run UIAutomation tests from the command line with Xcode 4.3:
instruments -t /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate ~/Library/Application\ Support/iPhone\ Simulator/5.1/Applications/{string-of-numbers-and-letters}/MyApp.app/ -e UIASCRIPT /Path/To/TestFile.js
Hope this helps someone else, as the documentation out there for this is extremely lacking.
Update
Note that as of Xcode 4.5.2, the automation template location has changed from that on my original answer:
/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With