Skip to content

Winium.StoreApps vs Winium.StoreApps.CodedUi

Nick Abalov edited this page Jun 12, 2015 · 1 revision
Winium.StoreApps Winium.StoreApps.CodedUi
Visual Studio Premium or Higher requirement No Yes
Support for devices and emulators Emulators only Emulators and Devices
Support for Hybrid apps No (at the moment) Partial support
AUT modification requirement Yes. Requires inclusion of InnerServer No
Access to any public property of elements Yes No
Interaction with other apps No. Tests freeze when AUT is not in foreground Yes
Parallel sessions out of a box No No

Clarifications

Visual Studio Premium or higher is needed both for development and running tests. Research needed if vs.test.console can be used to run tests on Windows Phone without Visual Studio Premium.

In theory it is possible to run tests on devices, but will require major refactoring of input simulation. Currently, Winium.StoreApps uses Hyper-V virtual mouse and keyboard to simulate gestures and some of keyboard events.

Winium.StoreApps does not support Hybrid apps at the moment, but it is doable. Winium.StoreApps.CodedUi supports hybrid apps, because WebView elements are direclty visible just like any other element of interface. But this limits or contorl over WebView elements as we can not send JavaScript to it.

Winium.StoreApps requires AUT to be modified to include InnerServer, this leads to some drawbacks, but also allows opens some possibilities.

Winium.StoreApps, due to InnerServer being injected in AUT, have access to all public properties of elements in visual tree. Winium.StoreApps.CodedUi is not integrated into AUT so it is limited to standard automation properties only.

<a name"FRE">Interaction with other apps

Winium.StoreApps, due to InnerServer being injected in AUT, freezes with AUT when it goes to foreground, so driver is not able to access anything outside AUt, except of sending basic input simulations like pressing hardware buttons Start, Back, Search.

Parallels sessions support is limited due to restictions of running only one emulator of each kind at same type, usage of ports, etc. Making tests run in parallel on same machine will require some scripting and setup.