Sweet! Thanks for doing this Alexander! Always thought it would be a great idea to write some our tests with appium
On Wed, Jan 20, 2016 at 5:07 PM, Joe Bowser <bows...@gmail.com> wrote: > So, Appium works now and I can close the issue complaining that Appium > doesn't work? > > On Wed, Jan 20, 2016, 9:12 AM Alexander Sorokin (Akvelon) < > v-als...@microsoft.com> wrote: > > > Hi guys. > > > > Lately I've been working on improving automated test coverage of core > > plugins. Work is still in progress but there are some results that I want > > to share. > > > > The idea is to use Appium framework to automate core plugins manual tests > > in mobilespec app. I've implemented a new command for Medic. It starts an > > Appium server instance, looks for the tests, then runs the mobilespec app > > from the specified folder and runs the tests. > > > > Appium supports only iOS and Android platforms so there are tests only > for > > these two, but we can extend the coverage of other platforms using > > different ui testing frameworks. > > > > The tests themselves are written for jasmine-node and are using "wd" > > module to connect to Appium server. They are currently located in plugin > > repos. Here's some links: > > > > Test runner (medic): > > https://github.com/apache/cordova-medic/pull/70 > > > > Battery Status tests: > > https://github.com/apache/cordova-plugin-battery-status/pull/29 > > > > Camera tests: > > https://github.com/apache/cordova-plugin-camera/pull/156 > > > > Contacts tests: > > https://github.com/apache/cordova-plugin-contacts/pull/101 > > > > Device Motion tests: > > https://github.com/apache/cordova-plugin-device-motion/pull/39 > > > > Tests can run on both real devices and emulators/simulators. > > While developing the tests, I've been using Android emulator and device > > with API level 19 (Android 4.4, KitKat) and iOS device (iPad 2) with iOS > > 7.1 so the tests can fail on other devices/emulators. I'm going to add > the > > support for other versions/devices as well as implement more Appium tests > > for other plugins in the nearest future. > > > > To run the tests: > > 1. Clone cordova-medic repo > > 2. Clone tested plugins repos (appium tests are there, in appium-tests > > folder) > > 3. Create mobile spec app with tested plugins: > > node cordova-mobile-spec/createmobilespec/createmobilespec.js > > mobspec-android --android --plugins "cordova-plugin-battery-status > > cordova-plugin-camera cordova-plugin-contacts > cordova-plugin-device-motion" > > 4. Build the mobilespec app: > > cd mobspec-android && cordova build > > 5. Start the emulator/connect the device > > 6. Run the tests using command: > > node cordova-medic/medic/medic.js appium --app [mobilespec folder] > > --platform [platform] --device-name [device/emulator name] > > --platform-version [platform version] --plugins [list of plugins to test > > separated by space] [--device (only if running on a real device)] --udid > > [iOS real devices only, device UDID] > > Every argument except --platform is optional. On iOS, --udid is mandatory > > if running on real device. > > > > For example, android emulator: > > node cordova-medic/medic/medic.js appium --app mobspec-android --platform > > android --device-name appium --platform-version 19 --plugins > > "cordova-plugin-device-motion" > > > > Android device: > > node cordova-medic/medic/medic.js appium --platform android --app > > mobspec-android --plugins "cordova-plugin-contacts" --device > > > > iOS simulator: > > node cordova-medic/medic/medic.js appium --app mobspec-ios --platform ios > > --plugins "cordova-plugin-contacts" > > > > iOS device: > > node cordova-medic/medic/medic.js appium --app mobspec-ios --platform ios > > --device-name "iPad 2" --udid [UDID here] --plugins > "cordova-plugin-camera > > cordova-plugin-contacts" > > > > I hope we will be running these tests along with other medic tests that > > are now running on CI in future: > > http://ci.cordova.io/ > > > > Please take a look and say what you think. > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org > > For additional commands, e-mail: dev-h...@cordova.apache.org > > > > >