{jenkins-plugin-info:xunit}

This plugin makes it possible to publish the test results of an execution of a testing tool in Jenkins.


Features

Supported tools

Embedded tools

* JUnit (supported schema are Ant junit and Maven Surefire)
* AUnit
* MSTest (imported from MSTest Plugin)
* NUnit (imported from NUnit Plugin)
* UnitTest++
* Boost Test Library
* PHPUnit
* Free Pascal Unit
* CppUnit
* MbUnit
* Googletest
* EmbUnit
* gtester/glib
QTestLib

Other plugins as an extension of the xUnit plugin:

* Gallio (Gallio plugin)
* Parasoft C++Test tool (Cpptest Plugin)
* JSUnit (JSUnit Plugin)
* JBehave
* TestComplete (TestComplete xUnit Plugin)

External contributions

For each xUnit tool, an embedded style sheet is used. However, the plugin also enables you to use a custom style sheet for your own tool such as :
* WebUI
* Ranorex

Configuration

Job Configuration

* Execute your testing tools manually or as a step of your build chain
* Give a pattern that specifies your test results

Provide User XSL

If you want to customise how a input report is transformed to a JUnit report, of an existing tool type; xUnit provides a way to use your own XSL if placed at specific path. Specify your XSLs in the JENKINS_HOME/userContent directory with the following convention:

$JENKINS_HOME/userContent/xunit/[toolName]/[version]/[any_name].xsl

For example:

$JENKINS_HOME/userContent/xunit/AUnit/3.x/aunit-to-junit.xsl

Note: The tool name and the version are taken from the label in the combo box from the UI. If the tool doesn't have a version (N/A), do not create a version directory.

Custom Tool for unsupported formats

XUnit supports a large number of report format, but not all. For unsupported report type an user could provide an own stylesheet that convert the original report into a supported JUnit report.

When choose the "Custom Tool" as tool type a path to the user XSL must be provided. The path is relative and the plugin lookup the provided relative path using the following priority:

  1. on Jenkins master
  2. on Jenkins slave
  3. relative to workspace

You could also provide an URL to the stylesheet. Is possible place the XSL file in the $JENKINS_HOME/userContent folder and automatically the file will be available under the URL http(s)://$JENKINS_URL/userContent/<xsl file>

xUnit Architecture

Global Architecture

When this plugin is installed and configured, Jenkins can transform test result reports produced by different testing tools into JUnit test result format. The JUnit tests can then be recorded by Jenkins.
Jenkins can provide useful information about test results, such as the historical test result trend, web UI for viewing test reports, tracking failures, and so on.

Under the hood, xUnit Jenkins plugin delegates processing to DTKit.

DTKit Activities for XUnit

DTKit Packaging

Working with Pipelines

It is also possible to set an xUnit configuration in a pipeline job, but is somewhat more verbose.

For example, creating a boost pipeline (declarative) with the same configuration as above would be:

pipeline {
    agent any
    stages {
        stage('Test'){
            steps {
                sh "run_tests.bash"
            }
        }
    }
    post {
        always{
            xunit (
                thresholds: [ skipped(failureThreshold: '0'), failed(failureThreshold: '0') ],
                tools: [ BoostTest(pattern: 'boost/*.xml') ])
            )
        }
    }
 }

Releases

Version 2.3.1

Improvements

Bugfixes

Version 2.2.5

Improvements

Bugfixes

Version 2.1.0

Improvements

Bugfixes

Version 2.0.4

Improvements

Bugfixes

Version 2.0.0

Breaking Changes

I have introduce some schemas validation becase the large number of issues opened to xUnit plugin. Those issues are caused by custom attributes or XML DOM in the report generated by some user/tools report logger also if they declare to produce a valid report file. This cause me to spend a lot of time to investigate what is right and what is wrong and how to implement the XSL without it goes in error during transformation. 

In case you are using a non java tools that declares to produce a JUnit compatible report, ensure the report respects one of the widely used supported schemas. If not than select as test type the build step "Custom Tool" and use this XSL as described here.

In case you are using a tools that declares to produce a NUnit 2 compatible report, ensure the report respects the official schemas. If not than select as test type the build step "Custom Tool" and provide a XSL as described here.

Improvements

Bugfixes

Version 1.104

Improvements

Bugfixes

Version 1.100