Skip to content

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

License

Notifications You must be signed in to change notification settings

thombashi/pytest-discord

Repository files navigation

pytest-discord

Summary

PyPI package version Supported Python versions Supported Python implementations CI status of Linux/macOS/Windows Test coverage: coveralls CodeQL

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

Usage

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

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

Notification message example

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

Notification message example

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
[tool.pytest.ini_options]
discord_webhook = "https://discordapp.com/api/webhooks/..."
md_report_verbose = 1
Example of setup.cfg
[tool:pytest]
discord_webhook = https://discordapp.com/api/webhooks/...
md_report_verbose = 1

Dependencies