https://github.com/ctco/zephyr-sync
Tool to synchronize test results to Zephyr (test management add-on for JIRA)
https://github.com/ctco/zephyr-sync
Last synced: 9 months ago
JSON representation
Tool to synchronize test results to Zephyr (test management add-on for JIRA)
- Host: GitHub
- URL: https://github.com/ctco/zephyr-sync
- Owner: ctco
- Created: 2016-08-08T09:50:23.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2025-06-02T07:49:07.000Z (about 1 year ago)
- Last Synced: 2025-07-04T11:19:54.129Z (12 months ago)
- Language: Java
- Homepage:
- Size: 193 KB
- Stars: 22
- Watchers: 6
- Forks: 27
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](https://app.wercker.com/project/byKey/5f663d10cb826a4ebbbfaa7d2f6f1420)
# Zephyr Sync
## Overview
Zephyr Sync is a tool, that allows your project to perform synchronization of automated test results to Zephyr - a JIRA addon for Test Management. The advanced configuration of the tool supports multiple report types to work with, as well as some restrictions to be applied during the sync.
## Usage example
### Maven
All changes should be done inside `pom.xml`.
#### Using zephyr-sync-maven-plugin (recommended)
The configuration is very simple and should be done in `pom.xml`
(note that this example is given for `cucumber`, other reports like `allure` are configured in the similar way):
```
lv.ctco.zephyr
zephyr-sync-maven-plugin
${zephyr-sync.version}
lv.ctco.zephyr
zephyr-sync-report-cucumber
${zephyr-sync.version}
TECXYZ01
${env.TECXYZ01_PWD}
cucumber
XYZ
http://jira.yourcompany.com/rest/
1.0
${project.build.directory}/cucumber-report/report.json
```
#### Using maven-exec-plugin (deprecated)
First of all - declare dependency to `zephyr-sync-core`:
```
...
lv.ctco.zephyr
zephyr-sync-core
${zephyr-sync.version}
```
Also configure a Maven plugin that will trigger synchronization to JIRA:
```
org.codehaus.mojo
exec-maven-plugin
1.3.1
default-cli
java
lv.ctco.zephyr.Runner
--username=TECXYZ01
--password=${env.TECXYZ01_PWD}
--reportType=cucumber
--projectKey=XYZ
--releaseVersion=1.0
--jiraUrl=http://jira.yourcompany.com/rest/
--reportPath=${project.build.directory}/cucumber-report/report.json
```
This example shows only minimal set of mandatory attributes.
For complete list of attributes refer to sections below.
### Command Line Interface
```
java -jar zephyr-sync-cli-${zephyr-sync.version}-all-in-one.jar --username=SPCABC --password=123456 --reportType=cucumber --projectKey=ABC --releaseVersion="Release 2.1" --jiraUrl=http://jira.yourcompany.com/rest/ --reportPath=build/cucumber-report/report.json
```
### Using Gradle (using CLI)
```
task zephyrSync {
javaexec {
main = "lv.ctco.zephyr.Runner"
classpath = sourceSets.main.output + sourceSets.test.output
args = ["--username=SPCABC", "--password=123456", "--reportType=cucumber", "--projectKey=ABC",
"--releaseVersion=Release 2.1", "--jiraUrl=http://jira.yourcompany.com/rest/", "--reportPath=build/cucumber-report/report.json"]
}
}
```
## Configuration properties
This is the list of possible configuration items:
Property | Meaning | Is mandatory? | Default value | Example
--- | --- | --- | --- | ---
username | User name used to connect to JIRA | yes | | `TECXYZ01`
password | Password for the user to connect to JIRA | yes | | `password`
reportType | Type of report that will be synchronized to Zephyr | yes | | One of `cucumber`, `allure`, `junit` or `nunit`
projectKey | Key of project in JIRA | yes | | `XYZ`
releaseVersion | FixVersion of a project to link Test results to | yes | | `1.0`
testCycle | Zephyr test cycle where the results will be linked to | yes | |
jiraUrl | URL of JIRA (it's RESTful API endpoint) | yes | | `http://jira.yourcompany.com/jira/rest/
reportPath | Path on the file system where reports are stored | yes | | For cucumber: `${project.build.directory}/cucumber-report/report.json`
orderedSteps | If set to true, numerical prefix for test steps will be put (hierarchical) | no | `false` |
forceStoryLink | If set to true, sync will be failed in case at least one test doesn't have @Stories=ABC-XXX annotation | no | `true` |
generateTestCaseUniqueId | Name of JIRA attribute that is used to store unique ID of test case (will be used for test case tracking, updates and linking) | no | `false` |
severityAttribute | Name of JIRA attribute that stores 'Severity' attribute | no | |
autoCreateTestCycle | Should new test cycle be created automatically | no | `true` |
assignee | Specify an Assignee | no | |
linkType | Link type between Test issue and related story (used in combination with `@Stories` annotation) | no | `Reference` |
linkDirection | Link direction between Test issue and related story | no | `inward` | One of `inward` or `outward`