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/workflows/Tests/badge.svg
:target: https://github.com/thombashi/pytest-discord/actions?query=workflow%3ATests
:alt: Linux/macOS/Windows CI status

.. 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, the verbosity level will be the same as with
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, the
verbosity level will be the same as with 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.2.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pytest-discord-0.1.2.tar.gz
Algorithm Hash digest
SHA256 864d2ff33d8bea6ba07df34fc7be6ab4af810e7b68d29958f16f977faec23a19
MD5 d9b56b2e8d465fcb78d33938d2cc4b73
BLAKE2b-256 4989a1d51effa4d1bf092e8a756c234c2ebc03c6a7f0ac720df184dfabcb49b8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pytest_discord-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for pytest_discord-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 26c4b8ca33d5a63b526d3430aa18a3d31ea391ada6dc60718bd08918f76ed3d8
MD5 8b57cfe76d42f473f957ef26acfe4e07
BLAKE2b-256 9915effb4f89ea18a4b680d3938ec08f76a31f3009b601c8bb35768e933909c6

See more details on using hashes here.

Supported by

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