Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ctrf-io/slack-test-reporter
Send Slack notifications with test results from popular testing frameworks using a single command in your CI/CD
https://github.com/ctrf-io/slack-test-reporter
Last synced: about 2 months ago
JSON representation
Send Slack notifications with test results from popular testing frameworks using a single command in your CI/CD
- Host: GitHub
- URL: https://github.com/ctrf-io/slack-test-reporter
- Owner: ctrf-io
- License: mit
- Created: 2024-05-30T22:06:17.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-10-17T19:24:19.000Z (3 months ago)
- Last Synced: 2024-10-20T05:33:46.649Z (3 months ago)
- Language: TypeScript
- Homepage: https://ctrf.io
- Size: 484 KB
- Stars: 6
- Watchers: 1
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Slack Test Results Notification
> Send Slack message with test result from popular testing frameworks
![Example view](assets/results.png)
## Help us grow CTRF
⭐ **If you find this project useful, please consider following the [CTRF organisation](https://github.com/ctrf-io) and giving this repository a star** ⭐
**It means a lot to us and helps us grow this open source library.**
## Features
- **Send Test Results to Slack**: Automatically send test results to a Slack channel.
- **Send Flaky Test Details to Slack**: Automatically send flaky test details to a Slack channel.
- **Conditional Notifications**: Use the `--onFailOnly` option to send notifications only if tests fail.## Setup
You'll need a CTRF report generated by your testing framework. [CTRF reporters](https://github.com/orgs/ctrf-io/repositories) are available for most testing frameworks and easy to install.
**No CTRF reporter? No problem!**
Use [junit-to-ctrf](https://github.com/ctrf-io/junit-to-ctrf) to convert a JUnit report to CTRF.
### Create a Slack Incoming Webhook
1. Go to the [Slack API: Incoming Webhooks](https://api.slack.com/messaging/webhooks) page.
2. Click on "Create a Slack App" or use an existing app.
3. Add the "Incoming Webhooks" feature to your app.
4. Activate the Incoming Webhook and add a new webhook to your workspace.
5. Copy the webhook URL provided.### Set the Environment Variable
Set the webhook URL as an environment variable in your shell or CI environment:
```sh
export SLACK_WEBHOOK_URL='https://hooks.slack.com/services/your/webhook/url'
```Make sure to replace `'https://hooks.slack.com/services/your/webhook/url'` with your actual webhook URL.
You might want to store the webhook URL as a secret.
## Usage
### Results
To send the test results summary to Slack:
```sh
npx slack-ctrf results /path/to/ctrf-report.json
```![Results view](assets/results.png)
### AI Summary
To send AI failed test summary to Slack:
```sh
npx slack-ctrf ai /path/to/ctrf-report.json
```Use `--consolidated` argumement to send a single message with all AI summaries
```sh
npx slack-ctrf ai /path/to/ctrf-report.json --consolidated
```![AI view](assets/ai.png)
See the [AI Test Reporter](https://github.com/ctrf-io/ai-test-reporter) to add AI summaries to your CTRF report
### Flaky
To send flaky test report to Slack:
```sh
npx slack-ctrf flaky /path/to/ctrf-report.json
```![Flaky view](assets/flaky.png)
## Failed
To send failed test report to Slack:
```sh
npx slack-ctrf failed /path/to/ctrf-report.json
```Use `--consolidated` argumement to send a single message with all AI summaries
```sh
npx slack-ctrf failed /path/to/ctrf-report.json --consolidated
```![Failed view](assets/failed.png)
### Send Only on Failures
To send the test results summary to Slack only if there are failed tests, use the `--onFailOnly` option:
```sh
npx slack-ctrf results /path/to/ctrf-file.json --onFailOnly
```or using the alias:
```sh
npx slack-ctrf results /path/to/ctrf-file.json -f
```### Custom Notification Title
You can choose a custom title for your notification, use the `--title` option:
```sh
npx slack-ctrf results /path/to/ctrf-file.json --title "Custom Title"
```or using the alias:
```sh
npx slack-ctrf results /path/to/ctrf-file.json -t "Custom Title"
```## Options
- `--onFailOnly, -f`: Send notification only if there are failed tests.
- `--title, -t`: Title of the notification.## Merge reports
You can merge reports if your chosen reporter generates multiple reports through design, parallelisation or otherwise.
The [ctrf-cli](https://github.com/ctrf-io/ctrf-cli) package provides a method to merge multiple ctrf json files into a single file.
After executing your tests, use the following command:
```sh
npx ctrf merge
```Replace directory with the path to the directory containing the CTRF reports you want to merge.
## What is CTRF?
CTRF is a universal JSON test report schema that addresses the lack of a standardized format for JSON test reports.
**Consistency Across Tools:** Different testing tools and frameworks often produce reports in varied formats. CTRF ensures a uniform structure, making it easier to understand and compare reports, regardless of the testing tool used.
**Language and Framework Agnostic:** It provides a universal reporting schema that works seamlessly with any programming language and testing framework.
**Facilitates Better Analysis:** With a standardized format, programatically analyzing test outcomes across multiple platforms becomes more straightforward.
## Support Us
If you find this project useful, consider giving it a GitHub star ⭐ It means a lot to us.