A pytest plugin to run Xvfb for tests.

pip install pytest-xvfb==2.0.0



A pytest plugin to run Xvfb for tests.


You can install "pytest-xvfb" via pip from PyPI:

$ pip install pytest-xvfb


With Xvfb and the plugin installed, your testsuite automatically runs with Xvfb. This allows tests to be run without windows popping up during GUI tests or on systems without a display (like a CI).

If Xvfb is not installed, the plugin does not run and your tests will still work as normal. However, a warning message will print to standard output letting you know that Xvfb is not installed.

If you're currently using xvfb-run in something like .travis.yml, simply remove it and install this plugin instead - then you'll also have the benefits of Xvfb locally.


You can pass --no-xvfb to explicitly turn off Xvfb (e.g. to visually inspect a failure).

You can mark tests with @pytest.mark.no_xvfb to skip them when they're running with Xvfb.

A xvfb fixture is available with the following attributes:

  • width: The configured width of the screen.
  • height: The configured height of the screen.
  • colordepth: The configured colordepth of the screen.
  • args: The arguments to be passed to Xvfb.
  • display: The display number (as int) which is used.


Contributions are very welcome. Tests can be run with tox, please ensure the coverage at least stays the same before you submit a pull request.


Distributed under the terms of the MIT license, "pytest-xvfb" is free and open source software


This pytest plugin was generated with Cookiecutter along with @hackebrot's Cookiecutter-pytest-plugin template.

Thanks to @cgoldberg for xvfbwrapper which was the inspiration for this project.


If you encounter any problems, please file an issue along with a detailed description.