Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/The-Compiler/pytest-xvfb
A pytest plugin to run Xvfb (or Xephyr/Xvnc) for tests.
https://github.com/The-Compiler/pytest-xvfb
Last synced: 4 months ago
JSON representation
A pytest plugin to run Xvfb (or Xephyr/Xvnc) for tests.
- Host: GitHub
- URL: https://github.com/The-Compiler/pytest-xvfb
- Owner: The-Compiler
- License: mit
- Created: 2016-02-16T18:45:56.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2023-12-11T12:33:15.000Z (about 1 year ago)
- Last Synced: 2024-10-26T20:43:38.456Z (4 months ago)
- Language: Python
- Homepage:
- Size: 98.6 KB
- Stars: 71
- Watchers: 5
- Forks: 11
- Open Issues: 1
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.rst
- License: LICENSE
Awesome Lists containing this project
README
pytest-xvfb
===================================A pytest plugin to run `Xvfb`_ (or `Xephyr`_/`Xvnc`_) for tests.
----
Installation
------------You can install "`pytest-xvfb`_" via `pip`_ from `PyPI`_::
$ pip install pytest-xvfb
Usage
-----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).
The plugin sees Xvfb being installed as "optional", since the tests can still
run without it installed. If it's unavailable, it will show an informational
message, if on Linux and a ``DISPLAY`` is available. When using
``--xvfb-backend xvfb``, this message will turn into a hard error instead.If you're currently using ``xvfb-run`` in something like a GitHub Actions YAML
file simply remove the wrapper and install this plugin instead - then you'll
also have the benefits of Xvfb locally.Features
--------You can pass ``--no-xvfb`` to explicitly turn off Xvfb (e.g. to visually
inspect a failure).With ``--xvfb-backend xephyr`` or ``--xvfb-backend xvnc``, you can use Xephyr
or Xvnc in place of Xvfb, e.g. to visually inspect failures.**NOTE:** Support for ``xvnc`` is currently experimental and not tested on CI,
due to incompatibilities with PyVirtualDisplay and Ubuntu 22.04's tightvncserver.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.
- ``backend``: Either ``None`` (Xvfb), ``"xvfb"``, ``"xephyr"``, or ``"xvnc"``.In a pytest.ini, ``xvfb_width``, ``xvfb_height``, ``xvfb_colordepth`` and
``xvfb_args`` can be used to configure the respective values. In addition,
``xvfb_xauth`` can be set to ``true`` to generate an ``Xauthority`` token.Contributing
------------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.License
-------Distributed under the terms of the `MIT`_ license, "pytest-xvfb" is free and open source software
Thanks
------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.Issues
------If you encounter any problems, please `file an issue`_ along with a detailed description.
.. _`pytest-xvfb`: https://pypi.python.org/pypi/pytest-xvfb/
.. _`Cookiecutter`: https://github.com/audreyr/cookiecutter
.. _`@hackebrot`: https://github.com/hackebrot
.. _`@cgoldberg`: https://github.com/cgoldberg
.. _`xvfbwrapper`: https://github.com/cgoldberg/xvfbwrapper
.. _`MIT`: http://opensource.org/licenses/MIT
.. _`cookiecutter-pytest-plugin`: https://github.com/pytest-dev/cookiecutter-pytest-plugin
.. _`file an issue`: https://github.com/The-Compiler/pytest-xvfb/issues
.. _`pytest`: https://github.com/pytest-dev/pytest
.. _`tox`: https://tox.readthedocs.org/en/latest/
.. _`pip`: https://pypi.python.org/pypi/pip/
.. _`PyPI`: https://pypi.python.org/pypi
.. _`Xvfb`: https://en.wikipedia.org/wiki/Xvfb
.. _`Xephyr`: https://www.freedesktop.org/wiki/Software/Xephyr/
.. _`Xvnc`: https://tigervnc.org/doc/Xvnc.html