parkouss / funq

funq is a python framework to write FUNctional tests for Qt applications
Other
64 stars 18 forks source link

Change build steps to a DockerFile #34

Closed rafaeldelucena closed 6 years ago

rafaeldelucena commented 6 years ago

Looking at .travis.yml the build system used is an Qt4 version, what about create some Dockerfiles to test multiple Qt versions, especially Qt5?

With that, in future we can create builds for multiple architectures, aiming Embedded Linux Systems for an example.

https://docs.travis-ci.com/user/docker/

ubruhin commented 6 years ago

I added initial Qt5 support in #37. But the main problem is that PySide is Qt4, so the functional tests are not working with Qt5. In #37 I suggested to write the test application in C++ instead of Python, then we no longer need PySide and testing Qt5 should be easy.

parkouss commented 6 years ago

Yeah, either that or use PyQt5, which can be installed with pip (at least for linux on travis). maybe it is just a matter of using different imports in the functional tests.

rafaeldelucena commented 6 years ago

I think a first approach we can change functional tests to PyQt5 and progressively rewriting them to C++, what do you think?

ubruhin commented 6 years ago

Hmm it seems that PyQt5 is not available for Python 2.7 (at least not at https://pypi.org/project/PyQt5/), so we wouldn't be able to test with Qt5 on Python 2.7 :(

I have no experience with PyQt, but I really wonder if it's possible to get it run with all combinations of Linux/Windows/Mac, Qt4/Qt5 and Py2/Py3 (IMHO it should be the goal of funq to run on all combinations of them).

Porting the application to C++ would at least remove the dependency to Python, then we only have the combinations of OS type and Qt version which is probably much easier to handle...

rafaeldelucena commented 6 years ago

Sure, actually will remove dependencies for PyQt and PySide, but we need to test the FunqClient to python 2.7 and 3.x. Also the app_test isn't too complex to port into a C++ app.

For python version compability we can use something like tox.

And for QML apps, at first we can simply use qmlscene.

rafaeldelucena commented 6 years ago

For now I'll close this because of #38 and #37, with that now we have tests to validate supports to Qt4 and Qt5 also Python 2.7 and Python 3.x.