An open API service indexing awesome lists of open source software.

https://github.com/ctrf-io/jira-test-reporter

Create Jira issues with test results from popular testing frameworks
https://github.com/ctrf-io/jira-test-reporter

Last synced: 4 months ago
JSON representation

Create Jira issues with test results from popular testing frameworks

Awesome Lists containing this project

README

          

# Jira Test Results Notification

> Create a Jira issue with test results from popular testing frameworks

A Jira test reporting tool that supports all major testing frameworks.
Generate, publish and alert your team with detailed test results, including
summaries, in-depth reports, failed test analyses, flaky test detection directly to your chosen Jira project.



💚

CTRF tooling is open source and free to use


You can support the project with a follow and a star


Contributions are very welcome!

Explore more integrations

Let us know your thoughts.


## Features

- **Create Issue in Jira**: Automatically create an issue in Jira.
- **Send Flaky Test Details to Jira**: Automatically send flaky test details to a Jira issue.
- **Conditional Notifications**: Use the `--onFailOnly` option to send notifications only if tests fail.

![Example view](assets/issue.png)

## 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.

### Set the Environment Variable

Set the webhook URL as an environment variable in your shell or CI environment:

```sh
export JIRA_URL='https://your-domain.atlassian.net'
export JIRA_EMAIL='your-email@example.com'
export JIRA_API_TOKEN='your-jira-api-token'
```

Make sure to replace `'https://your-domain.atlassian.net'` with your actual Jira URL.

You might want to store these as secrets in your CI environment.

## Required Arguments

- `project`: The Jira project key.
- `issueTypeId`: The Jira issue type. [More info](https://confluence.atlassian.com/jirasoftwarecloud/finding-the-issue-type-id-in-jira-cloud-1333825937.html)

## Usage

You can use a glob pattern or a single file path to send the test results summary to Jira.

### Results

To send the test results summary to Jira:

```sh
npx jira-ctrf results /path/to/ctrf-report.json --project CCS --issueTypeId 10000
```

You can use a glob pattern with multiple files which will be merged together:

```sh
npx jira-ctrf results "ctrf/*.json" --project CCS --issueTypeId 10000
```

### Flaky

To send flaky test report to Jira:

```sh
npx jira-ctrf flaky /path/to/ctrf-report.json --project CCS --issueTypeId 10000
```

### Send Only on Failures

To send the test results summary to Jira only if there are failed tests, use the `--onFailOnly` option:

```sh
npx jira-ctrf results /path/to/ctrf-file.json --onFailOnly --project CCS --issueTypeId 10000
```

### Custom Notification Title

You can choose a custom title for your notification, use the `--title` option:

```sh
npx jira-ctrf results /path/to/ctrf-file.json --title "Custom Title" --project CCS --issueTypeId 10000
```

## Options

| Option | Description | Default |
| -------------- | -------------------------------------------------------------------------------------------------------------------------- | ---------------------- |
| `title` | Custom title for the Jira issue | "Test Results Summary" |
| `prefix` | Text to add before the test results | "" |
| `suffix` | Text to add after the test results | "" |
| `onFailOnly` | Only create Jira issues when tests fail | false |
| `project` | Jira project key | "" |
| `issueTypeId` | Jira issue type ID | undefined |
| `labels` | Labels to add to the Jira issue | [] |
| `components` | Components to add to the Jira issue | [] |
| `assignee` | Username of the person to assign the Jira issue to | undefined |
| `priority` | Priority of the Jira issue | undefined |
| `fixVersions` | Comma-separated list of fix versions to add to the Jira issue | [] |
| `tableHeaders` | Comma-separated list of table headers to include (tests,passed,failed,skipped,pending,other,flaky,duration) | All headers |
| `debug` | Enable debug mode to see the payload being sent to Jira | false |

## Merge reports

If you use a glob pattern, the reports will be merged automatically.

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.

## Programmatic Usage

You can use the package programmatically to send notifications to Jira. To install the package, run:

```sh
npm install jira-ctrf
```

The package exports the following functions:

- `sendTestResultsToJira`
- `sendFlakyResultsToJira`

```ts
import { sendTestResultsToJira } from 'jira-ctrf'

sendTestResultsToJira(report)
```

## 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.