I enjoy Travis CI a lot for continuous integration testing. I test most of my C++ console, desktop (Qt, SFML) and web (using Wt) applications with it. It is great for testing browser-based applications and has documented this nicely.
One thing I cannot do is test the GUI of a desktop application on Travis CI.
I need basic things like 'get a window with a certain title/name its size', 'click left mouse button in the center' of the window' and 'send a space to the window'.
I can already do this locally, but only locally, with xdotools, LDTP2 and Sikuli. On Travis CI, however, I cannot get those tools to run successfully. I have been trying to write a tutorial about it (these are my scripts), I have contacted the folks at Travis and even set a bounty here, all without success.
Because this is a complex process (setting up a windows manager on Travis, writing desktop applications to test, writing scripts to test these in bash) I think it is not useful to post those little individuals errors here (most have answers here already).
My question is: does anyone have a working example of
- a non-web C++ GUI application
- that has its GUI tested both locally and on Travis
- these tests consist out of sending key presses and mouse clicks
I do not care about the exact tools (xdotools or some other window manager tool, Qt or some other C++ GUI library, bash or any other scripting language). All I want is to have Travis CI check my GUI upon a git push
.