A Playwright reporter that sends test results to Slack channels via webhook, bot, or CLI.
playwright-slack-report is a custom reporter for the Playwright testing framework that sends test execution results directly to Slack channels. It solves the problem of fragmented test visibility by delivering real-time notifications and detailed reports into team collaboration tools, making it easier to monitor CI/CD pipeline health.
Teams using Playwright for end-to-end or component testing who want to integrate test results into their Slack workflows for better visibility and collaboration.
Developers choose this over building custom integrations because it offers a ready-to-use, configurable solution with multiple delivery methods (webhook, bot, CLI), support for custom message layouts, and seamless integration with Playwright's reporter system.
Publish your Playwright test results to your favourite Slack channel(s).
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports Slack webhooks, bot OAuth tokens, and a standalone CLI for sending merged JSON reports, offering flexibility for different CI/CD setups as detailed in Options A, B, and C.
Allows conditional posting based on test outcomes (always, on-failure, off), enabling teams to reduce noise by only sending failure alerts.
Enables defining custom Slack message blocks via layout functions, with examples for including meta data, screenshots, and videos, as shown in the custom layout section.
Can attach context like branch name, build ID, or commit hash to summaries, enhancing debugging by linking test results to specific code changes.
Using webhooks does not support showing failure details in threads, limiting deeper analysis without switching to bot tokens, as admitted in the README.
Bot users can only post to public Slack channels, not private ones, which may hinder adoption in teams using private channels for sensitive discussions.
Custom layouts require installing @slack/types and handling async functions, and the CLI config has nuanced rules like avoiding import statements, adding overhead for non-trivial implementations.