1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2024-12-14 11:03:09 +02:00
sap-jenkins-library/documentation/docs/steps/testsPublishResults.md
Christopher Fenner d657f0dc28
testsPublishResults: add option to fail the build on test errors (#472)
* add option to fail the build on test errors

* fix typo

* add test cases

* adjust docs

* set build result

* add hasTestFailure utils method

* use utils method

* use dedicated type

* adapt tests

* handle missing test actions

* Update testsPublishResults.md

* Update JenkinsUtils.groovy

* Update JenkinsUtils.groovy

* Update JenkinsUtils.groovy

* remove comments

* adapt test case

* Update TestsPublishResultsTest.groovy
2019-02-08 12:30:59 +01:00

138 lines
4.4 KiB
Markdown

# testsPublishResults
## Description
This step can publish test results from various sources.
## Prerequsites
* **test result files** - To use this step, there must be test result files available.
* installed plugins:
* [junit](https://plugins.jenkins.io/junit)
* [jacoco](https://plugins.jenkins.io/jacoco)
* [cobertura](https://plugins.jenkins.io/cobertura)
* [performance](https://plugins.jenkins.io/performance)
## Pipeline configuration
none
## Explanation of pipeline step
Usage of pipeline step:
```groovy
testsPublishResults(
junit: [updateResults: true, archive: true],
jacoco: [archive: true]
)
```
Available parameters:
| parameter | mandatory | default | possible values |
| ----------|-----------|---------|-----------------|
| script | yes | | |
| `failOnError` | no | `false` | `true`, `false` |
| junit | no | `false` | true, false |
| jacoco | no | `false` | true, false |
| cobertura | no | `false` | true, false |
| jmeter | no | `false` | true, false |
* `script` - The common script environment of the Jenkinsfile running.
Typically the reference to the script calling the pipeline step is provided
with the `this` parameter, as in `script: this`.
This allows the function to access the [`commonPipelineEnvironment`](commonPipelineEnvironment.md)
for retrieving, for example, configuration parameters.
* `failOnError` - If `failOnError` it set to `true` the step will fail the build if JUnit detected any failing tests.
* `junit` - Publishes test results files in JUnit format with the [JUnit Plugin](https://plugins.jenkins.io/junit).
* `jacoco` - Publishes code coverage with the [JaCoCo plugin](https://plugins.jenkins.io/jacoco) .
* `cobertura` - Publishes code coverage with the [Cobertura plugin](https://plugins.jenkins.io/cobertura).
* `jmeter` - Publishes performance test results with the [Performance plugin](https://plugins.jenkins.io/performance).
Each of the parameters `junit`, `jacoco`, `cobertura` and `jmeter` can be set to `true` or `false` but also to a map of parameters to hand in different settings for the tools.
### junit
| parameter | mandatory | default | possible values |
| ----------|-----------|---------|-----------------|
| pattern | no | `'**/TEST-*.xml'` | |
| archive | no | `false` | true, false |
| updateResults | no | `false` | true, false |
| allowEmptyResults | no | `true` | true, false |
### jacoco
| parameter | mandatory | default | possible values |
| ----------|-----------|---------|-----------------|
| pattern | no | `'**/target/*.exec'` | |
| include | no | `''` | `'**/*.class'` |
| exclude | no | `''` | `'**/Test*'` |
| archive | no | `false` | true, false |
| allowEmptyResults | no | `true` | true, false |
### cobertura
| parameter | mandatory | default | possible values |
| ----------|-----------|---------|-----------------|
| pattern | no | `'**/target/coverage/cobertura-coverage.xml'` | |
| archive | no | `false` | true, false |
| allowEmptyResults | no | `true` | true, false |
| onlyStableBuilds | no | `true` | true, false |
### jmeter
| parameter | mandatory | default | possible values |
| ----------|-----------|---------|-----------------|
| pattern | no | `'**/*.jtl'` | |
| errorFailedThreshold | no | `20` | |
| errorUnstableThreshold | no | `10` | |
| errorUnstableResponseTimeThreshold | no | `` | |
| relativeFailedThresholdPositive | no | `0` | |
| relativeFailedThresholdNegative | no | `0` | |
| relativeUnstableThresholdPositive | no | `0` | |
| relativeUnstableThresholdNegative | no | `0` | |
| modeOfThreshold | no | `false` | true, false |
| modeThroughput | no | `false` | true, false |
| nthBuildNumber | no | `0` | |
| configType | no | `PRT` | |
| failBuildIfNoResultFile | no | `false` | true, false |
| compareBuildPrevious | no | `true` | true, false |
| archive | no | `false` | true, false |
| allowEmptyResults | no | `true` | true, false |
## Step configuration
Following parameters can also be specified as step parameters using the global configuration file:
* `junit`
* `jacoco`
* `cobertura`
* `jmeter`
## Side effects
none
## Exceptions
none
## Example
```groovy
// publish test results with coverage
testsPublishResults(
junit: [updateResults: true, archive: true],
jacoco: [archive: true]
)
```
```groovy
// publish test results with coverage
testsPublishResults(
junit: [pattern: '**/target/TEST*.xml', archive: true],
cobertura: [pattern: '**/target/coverage/cobertura-coverage.xml']
)
```