Skip to main content

A pytest plugin to notify test results to a Discord channel.

Project description

.. contents:: **pytest-discord**
:backlinks: top
:depth: 2


Summary
============================================
.. image:: https://badge.fury.io/py/pytest-discord.svg
:target: https://badge.fury.io/py/pytest-discord
:alt: PyPI package version

.. image:: https://img.shields.io/pypi/pyversions/pytest-discord.svg
:target: https://pypi.org/project/pytest-discord
:alt: Supported Python versions

.. image:: https://img.shields.io/pypi/implementation/pytest-discord.svg
:target: https://pypi.org/project/pytest-discord
:alt: Supported Python implementations

.. image:: https://github.com/thombashi/pytest-discord/actions/workflows/ci.yml/badge.svg
:target: https://github.com/thombashi/pytest-discord/actions/workflows/ci.yml
:alt: CI status of Linux/macOS/Windows

.. image:: https://coveralls.io/repos/github/thombashi/pytest-discord/badge.svg?branch=master
:target: https://coveralls.io/github/thombashi/pytest-discord?branch=master
:alt: Test coverage: coveralls

A pytest plugin to notify test results to a Discord channel.


Installation
============================================
::

pip install pytest-discord


Quick start
============================================

Making a Discord webhook
--------------------------------------------
`Intro to Webhooks – Discord <https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks>`__


Usage
--------------------------------------------
Set a webhook URL when executing ``pytest`` via ``--discord-webhook`` option:

::

$ pytest --discord-webhook=<https://discordapp.com/api/webhooks/...>

.. figure:: https://cdn.jsdelivr.net/gh/thombashi/pytest-discord@master/ss/pytest-discord.png
:scale: 80%
:alt: https://github.com/thombashi/pytest-discord/blob/master/ss/pytest-discord.png

Notification message example

Or, set a webhook URL to an environment variable ``PYTEST_DISCORD_WEBHOOK``:

::

$ export PYTEST_DISCORD_WEBHOOK=<https://discordapp.com/api/webhooks/...>
$ pytest

Or, you can specify a webhook URL of a discord channel via ``ini-options`` (described later).


Increase the verbosity level
--------------------------------------------
::

$ pytest --discord-verbose=1

.. figure:: https://cdn.jsdelivr.net/gh/thombashi/pytest-discord@master/ss/pytest-discord_verbose.png
:scale: 80%
:alt: https://github.com/thombashi/pytest-discord/blob/master/ss/pytest-discord_verbose.png

Notification message example

Notification messages may omit information caused by Discord limitations (especially when errors occur).
You can get full messages as an attached markdown file with ``--discord-attach-file`` option.


Options
============================================

Command options
--------------------------------------------
::

notify test results to a discord channel:
--discord-webhook=WEBHOOK_URL
discord webhook url of a discord channel to notify pytest results. you can also specify the value with PYTEST_DISCORD_WEBHOOK environment variable.
--discord-verbose=VERBOSITY_LEVEL
Verbosity level for pytest-discord.
If not set, use the verbosity level of pytest.
Defaults to 0.
you can also specify the value with PYTEST_DISCORD_VERBOSE environment variable.
--discord-username=DISCORD_USERNAME
name for a message. defaults to pytest. you can also specify the value with PYTEST_DISCORD_USERNAME environment variable.
--discord-success-icon=ICON_URL
url to an icon of a successful run. you can also specify the value with PYTEST_DISCORD_SUCCESS_ICON environment variable.
--discord-skip-icon=ICON_URL
url to an icon of a skipped run. you can also specify the value with PYTEST_DISCORD_SKIP_ICON environment variable.
--discord-fail-icon=ICON_URL
url to an icon of a failed run. you can also specify the value with PYTEST_DISCORD_FAIL_ICON environment variable.
--discord-attach-file
post pytest results as a markdown file to a discord channel. you can also specify the value with PYTEST_DISCORD_ATTACH_FILE environment variable.


ini-options
--------------------------------------------
[pytest] ini-options in the first ``pytest.ini``/``tox.ini``/``setup.cfg``/``pyproject.toml (pytest 6.0.0 or later)`` file found:

::

discord_webhook (string):
discord webhook url of a discord channel to notify pytest results.
discord_verbose (string):
Verbosity level for pytest-discord. If not set, use the verbosity level of pytest. Defaults to 0.
discord_username (string):
name for a message. defaults to pytest.
discord_success_icon (string):
url to an icon of a successful run.
discord_skip_icon (string):
url to an icon of a skipped run.
discord_fail_icon (string):
url to an icon of a failed run.
discord_attach_file (bool):
post pytest results as a markdown file to a discord channel.

:Example of ``pyproject.toml``:
.. code-block:: toml

[tool.pytest.ini_options]
discord_webhook = "https://discordapp.com/api/webhooks/..."
md_report_verbose = 1

:Example of ``setup.cfg``:
.. code-block:: ini

[tool:pytest]
discord_webhook = https://discordapp.com/api/webhooks/...
md_report_verbose = 1


Dependencies
============================================
- Python 3.7+
- `Python package dependencies (automatically installed) <https://github.com/thombashi/pytest-discord/network/dependencies>`__

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytest-discord-0.1.6.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

pytest_discord-0.1.6-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file pytest-discord-0.1.6.tar.gz.

File metadata

  • Download URL: pytest-discord-0.1.6.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for pytest-discord-0.1.6.tar.gz
Algorithm Hash digest
SHA256 cb54e1d35ac5252d700527e881c7667508b76638de040cb7d08f8c336e1af15d
MD5 ca90256e8fd0e6b80ff2f2d645511d4a
BLAKE2b-256 0723b7eea8908c081813dba4cd9820a350831ad7bf9e5e741c2b30e4242c59b2

See more details on using hashes here.

File details

Details for the file pytest_discord-0.1.6-py3-none-any.whl.

File metadata

File hashes

Hashes for pytest_discord-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 8266f0b51f63cf48024aa10239d73a4397ab02842af71bd4bc74b41a1e456c3f
MD5 3838e5cce0b8ed69ed077402884d498d
BLAKE2b-256 3a084f365b8aeb4ad6c3459b595bc2a9819de1b8c96fa1da4725eb8bf9914a60

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page