# Testing and Continuous Integration

To get automated tests of GTK code running on a headless server use Xvfb (virtual framebuffer X server). It provides the `xvfb-run -a` command which creates a temporary X server without the need for any real display hardware.

    xvfb-run -a python my_script.py

## Continuous Integration using Travis CI / CircleCI

Travis CI uses a rather old Ubuntu and thus the supported GTK is at 3.18 and PyGObject is at 3.20. If that’s enough for you then have a look at our Travis CI example project:

> https://github.com/pygobject/pygobject-travis-ci-examples

To get newer PyGObject, GTK, etc. working on Travis CI or CircleCI you can use Docker with an image of your choosing. Have a look at our Docker example project which runs tests on various Debian, Ubuntu and Fedora versions:

> https://github.com/pygobject/pygobject-travis-ci-docker-examples