For tests with real devices for iOS7 the application doesn’t get killed between runs (as it happens in simulator p.e.).
I get the message:
Executable “app_name” is already running as process XXX which was launched from the ‘launchd’ process
I’m using rspec to launch the automatic test, so the only option I have now it using only one xxx_spec.rb file and even only one describe call, because for each describe it will attempt to re-launch the application.
And mainly when a test fails I cannot re-launch to continue the other tests, so it will probably be stuck in some sub-page and all the other tests will also fail, so in the morning I have no useful report on tests.
Any solution for this? This seems to be a huge issue on appium.
Has anyone ever used cucumber f.e. with ios7 real device? How is it possible to run 2 features in a row? Because appium tries to restart app and then will fail in the error I showed in previous comment.
Any thought? Its possible not to kill app between features? I tried playing around with noReset, fullReset, autoLaunch, etc. and cannot make it happen.
I tried that. It wont work, because the app will still be in the iphone in the background and so the “new” appium server will again not be able to touch it.
and nothing works because at max it sends the application to background and doesn’t kill it. As you probably know apps dont get killed from >ios7, we have to do it manually.
So I had to make a completely idiot but functional workaround in order to run n features during the night and have jenkins call them on multijobs plugin.
This is the way I kill the app after every feature ends:
Pre-condition:
Turn on AssistiveTouch in General -> Accessibility -->AssistiveTouch ON
Place the icon on a place that will not interfere with yours tests
Tap the coordinates where you left the AssistiveTouch icon
Double tap the home button icon
Swipe up your application and by so effectively killing it
The next feature will launch your app again without any problems.
I left my assistive on fixed coordinates, so I just had to play on console until I found what those were and those are hard coded on constants in the code