-
Notifications
You must be signed in to change notification settings - Fork 125
Winium.StoreApps vs Winium.StoreApps.CodedUi
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 |
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.
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.