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.
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.