jira-client-xray
Version:
An extended wrapper of the existing "jira-client" module, which adds support for the "Xray for Jira" Test Management plugin's REST API
227 lines (145 loc) • 9.25 kB
Markdown
# `jira-client-xray`
[](https://www.npmjs.com/package/jira-client-xray) [](https://github.com/JamesMGreene/node-jira-client-xray/blob/master/LICENSE) [](https://travis-ci.org/JamesMGreene/node-jira-client-xray) [](https://david-dm.org/JamesMGreene/node-jira-client-xray) [](https://david-dm.org/JamesMGreene/node-jira-client-xray#info=devDependencies)
An extended wrapper of the existing [`jira-client`](https://www.npmjs.com/package/jira-client) module, which adds support for the ["Xray for Jira"](https://confluence.xpand-addons.com/display/XRAY/) Test Management plugin's [REST API](https://confluence.xpand-addons.com/display/XRAY/REST+API).
## Installation
```shell
$ npm install --save jira-client-xray
```
## API
### Create A Client
```js
var JiraApiWithXray = require('jira-client-xray');
// Initialize
var jira = new JiraApiWithXray({
strictSSL: true,
protocol: 'https',
username: 'username',
password: 'password',
host: 'jira.somehost.com',
base: 'jira',
xrayVersion: '1.0'
});
```
The constructor `options` parameter is a superset of the [`jira-client`](https://www.npmjs.com/package/jira-client) module's constructor's `options` parameter. It contains all of those configuration options, plus the following additional properties:
- `xrayVersion` _(string)_ - The REST API version of the "Xray for Jira" plugin. Defaults to `'1.0'`.
### Import Test Execution Results
For deeper documentation, please view our [ESDoc-generated documentation](https://jamesmgreene.github.io/node-jira-client-xray/).
##### Response Schema
The HTTP response object (referred to as the "testExecIssueId" in all subsequent examples) returned from the `Promise` for each of the following import methods is as follows:
```json
{
"testExecIssue": {
"id": "10000",
"key": "DEMO-123",
"self": "http://www.example.com/jira/rest/api/2/issue/10000"
}
}
```
##### Jira Issue Customization Request Schema
The JSON schema for the `issueData` parameter that is an optional part of some of these API calls is as follows:
[](https://developer.atlassian.com/cloud/jira/platform/rest/#api-api-2-issue-post) [](https://docs.atlassian.com/software/jira/docs/api/REST/7.9.0/#api/2/issue-createIssue)
#### Xray JSON
[](https://confluence.xpand-addons.com/display/XRAY/Import+Execution+Results+-+REST#ImportExecutionResults-REST-XrayJSONresults) [](https://confluence.xpand-addons.com/display/XRAY/Import+Execution+Results#ImportExecutionResults-XrayJSONformat)
```js
jira
.importExecResultsFromXray(testExecResults)
.then(function(testExecIssueId) { /* ... */ });
```
#### Cucumber JSON
[](https://confluence.xpand-addons.com/display/XRAY/Import+Execution+Results#ImportExecutionResults-CucumberJSONoutputformat)
##### Results Only
[](https://confluence.xpand-addons.com/display/XRAY/Import+Execution+Results+-+REST#ImportExecutionResults-REST-CucumberJSONresults)
```js
jira
.importExecResultsFromCucumber(testExecResults)
.then(function(testExecIssueId) { /* ... */ });
```
##### With JIRA Issue Customization
[](https://confluence.xpand-addons.com/display/XRAY/Import+Execution+Results+-+REST#ImportExecutionResults-REST-CucumberJSONresultsMultipart)
```js
jira
.importExecResultsFromCucumber(testExecResults, issueData)
.then(function(testExecIssueId) { /* ... */ });
```
#### Behave JSON
[](https://github.com/behave/behave/blob/master/behave/formatter/json.py)
##### Results Only
[](https://confluence.xpand-addons.com/display/XRAY/Import+Execution+Results+-+REST#ImportExecutionResults-REST-BehaveJSONresults)
```js
jira
.importExecResultsFromBehave(testExecResults)
.then(function(testExecIssueId) { /* ... */ });
```
##### With JIRA Issue Customization
[](https://confluence.xpand-addons.com/display/XRAY/Import+Execution+Results+-+REST#ImportExecutionResults-REST-BehaveJSONresultsMultipart)
```js
jira
.importExecResultsFromBehave(testExecResults, issueData)
.then(function(testExecIssueId) { /* ... */ });
```
#### JUnit XML
[](https://confluence.xpand-addons.com/display/XRAY/Import+Execution+Results#ImportExecutionResults-JUnitXMLoutputformat)
##### Results Only
[](https://confluence.xpand-addons.com/display/XRAY/Import+Execution+Results+-+REST#ImportExecutionResults-REST-JUnitXMLresults)
```js
jira
.importExecResultsFromJUnit(testExecResults, query)
.then(function(testExecIssueId) { /* ... */ });
```
##### With JIRA Issue Customization
[](https://confluence.xpand-addons.com/display/XRAY/Import+Execution+Results+-+REST#ImportExecutionResults-REST-JUnitXMLresultsMultipart)
```js
jira
.importExecResultsFromJUnit(testExecResults, null, issueData)
.then(function(testExecIssueId) { /* ... */ });
```
#### TestNG XML
[](https://confluence.xpand-addons.com/display/XRAY/Import+Execution+Results#ImportExecutionResults-TestNGXMLoutputformat)
##### Results Only
[](https://confluence.xpand-addons.com/display/XRAY/Import+Execution+Results+-+REST#ImportExecutionResults-REST-TestNGXMLresults)
```js
jira
.importExecResultsFromTestNG(testExecResults, query)
.then(function(testExecIssueId) { /* ... */ });
```
##### With JIRA Issue Customization
[](https://confluence.xpand-addons.com/display/XRAY/Import+Execution+Results+-+REST#ImportExecutionResults-REST-TestNGXMLresultsMultipart)
```js
jira
.importExecResultsFromTestNG(testExecResults, null, issueData)
.then(function(testExecIssueId) { /* ... */ });
```
#### NUnit XML
[](https://confluence.xpand-addons.com/display/XRAY/Import+Execution+Results#ImportExecutionResults-NUnitv3.0XMLoutputformat) [](https://confluence.xpand-addons.com/display/XRAY/Import+Execution+Results#ImportExecutionResults-NUnitv2.6XMLoutputformat)
##### Results Only
[](https://confluence.xpand-addons.com/display/XRAY/Import+Execution+Results+-+REST#ImportExecutionResults-REST-NUnitXMLresults)
```js
jira
.importExecResultsFromNUnit(testExecResults, query)
.then(function(testExecIssueId) { /* ... */ });
```
##### With JIRA Issue Customization
[](https://confluence.xpand-addons.com/display/XRAY/Import+Execution+Results+-+REST#ImportExecutionResults-REST-NUnitXMLresultsMultipart)
```js
jira
.importExecResultsFromNUnit(testExecResults, null, issueData)
.then(function(testExecIssueId) { /* ... */ });
```
#### Robot Framework XML
[](https://github.com/robotframework/robotframework/tree/master/doc/schema)
##### Results Only
[](https://confluence.xpand-addons.com/display/XRAY/Import+Execution+Results+-+REST#ImportExecutionResults-REST-RobotFrameworkXMLresults)
```js
jira
.importExecResultsFromRobot(testExecResults, query)
.then(function(testExecIssueId) { /* ... */ });
```
##### With JIRA Issue Customization
[](https://confluence.xpand-addons.com/display/XRAY/Import+Execution+Results+-+REST#ImportExecutionResults-REST-RobotFrameworkXMLresultsMultipart)
```js
jira
.importExecResultsFromRobot(testExecResults, null, issueData)
.then(function(testExecIssueId) { /* ... */ });
```
## License
Copyright (c) 2018, James M. Greene (MIT License)