Due to some maintenance issues, this service has been switched in read-only mode, you can find more information about the why

and how to migrate your plugin documentation in this blogpost

Skip to end of metadata
Go to start of metadata

Plugin Information

View xUnit on the plugin site for more information.

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


  • Records xUnit tests
  • Mark the build unstable or fail according to threshold values

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

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


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:


For example:


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:

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


Moved to github repository page

Version 2.2.5


  • JENKINS-51645 Add support for claims plugin in xUnit (nfalco79 to Arnaud)
  • JENKINS-24224 improve xunit plugin with test-stability plugin (nfalco79 to Arnaud)


  • JENKINS-53186 NUnit 2.x test cases with result Error are reported as Success (nfalco79)
  • Fix lookup strategy when user provides a custom stylesheets file to override the embedded one (nfalco79)
  • JENKINS-53034 Failure when validate NUnit 2.x reports generated by NUnit 3.x console (nfalco79)
  • JENKINS-53036 NPE after upgrade to 2.2.1 when run publisher (nfalco79)
  • JENKINS-52908 Newlines get ignored in failure message and possibly stack trace when uploading xUnitDotNet xml results (nfalco79)

Version 2.1.0


  • JENKINS-32920 Support for URL for stylesheet in Custom Tool (nfalco79)


  • JENKINS-52512 Builds on slave node fails when there is no report file even if set to do not fail (nfalco79)
  • JENKINS-52400 xUnit miss to add required attributes when converts Valgrind reports (nfalco79)

Version 2.0.4


  • Improved GoogleTest, FPCUnit, CppTest XSLT to produce a report more compliant with surefire XSD


  • JENKINS-52327 java.nio.file.AccessDeniedException on Publish xunit Custom tool test report (nfalco79 to greghoeppner)
  • JENKINS-52202 xUnit reports "All test reports are empty" in case of parallel steps but reports are not empty (nfalco79)
  • JENKINS-52253 xUnit in case of multiple tool type processes only the first one (nfalco79)
  • JENKINS-52173 xUnit fails when converting gtester/glib2 input to junit format (nfalco79)
  • JENKINS-51604 XPathExeption when parsing QtTestLib Reports when a Test contains multiple Incidents (nfalco79)
  • JENKINS-27860 Build does not stop if it is marked as Failure when the opportune option is enabled (nfalco79)
  • JENKINS-47194 xUnit should not consider report generated by other xUnit step (nfalco79)
  • JENKINS-52107 Convertion exception for NUnit 2.1 reports because nunit-version attribute not contains only digits (nfalco79)
  • JENKINS-41093 For Unittest++ xml, only the first failure of each test case is recognized (nfalco79)
  • JENKINS-51767 xUnit 2.x XSD does not validate NUnit 2.x XML report file (nfalco79)
  • JENKINS-51797 xUnit.Net v2 parse error when time attribute is missing (nfalco79)
  • JENKINS-51798 GoogleTest parse error when time attribute is missing (nfalco79)
  • JENKINS-51561 xUnit plugin fails to parse NUnit 2 report format generated by NUnit (nfalco79)
  • JENKINS-51465 Exception in XSL Transformation cause JEP-200 (nfalco79)
  • JENKINS-51481 Parse error occur when NUnit report have categories (nfalco79)
  • JENKINS-26227 xUnit plugin doesn't use OS culture when reads time values in xUnit.net output (nfalco79)
  • JENKINS-12417 xUnit problems with CppTest reports generated with default options (nfalco79)
  • JENKINS-28871 CppTest 9.5 report file seems not valid for xUnit when no tests was executed (nfalco79)

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.

  • NUnit 2.x (2.0 ~ 2.6) schema validation from official distribution.

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.


  • Improved MSTest, MbUnit, AUnit, NUnit, QtTest XSLT to produce a report more compliant with surefire XSD
  • Change UI rendering of the report tool and clarify the pattern description
  • JENKINS-37611 Add support for pipeline using @Symbol annotation to xunit and its parameters (nfalco79)


  • JENKINS-42715 xUnit does not support PHPUnit 5.x skipped attribute (nfalco79 to ray)
  • JENKINS-47194 xUnit should not consider report generated by other xUnit step (nfalco79)
  • JENKINS-10911 xUnit not detecting Ignored MSTest and NUnit Tests (nfalco79)
  • JENKINS-51347 Test Status "notrun" being reported as "failed" test (nfalco79)
  • JENKINS-13113 xUnit plugins detects MSTEST "NotExecuted" as successed instead of skipped (nfalco79)

Version 1.104


  • JENKINS-33450 Support for NUnit3 which uses a different XML format by NUnit2 (nfalco79 to alexschwantes)

  • JENKINS-50658 Fix xsd to be compliant with surefire report and rerun option (nfalco79 to alemorato)
  • Move plugin to pipeline so that commits and pull request could be checked for test failure


  • JENKINS-48945 Testreport lacks of those test in which the hashcode of two different testsuite name coincide (nfalco79)
  • JENKINS-33385 Testresult doesn't show test name in case the package is empty (nfalco79 to Zenger Alexander)

  • JENKINS-51056 xUnit throws NPE when no threshold was specified (nfalco79)
  • JENKINS-35660 QTestLib time information is lost (nfalco79 to kpop)
  • JENKINS-28471 xUnit should compare test results to last build where tests was recorded to calculate correctly thresholds (nfalco79 to Jimilian)
  • JENKINS-50378 Skipped count percentage is affected by integer rounding (nfalco79 to pauljohnston2009)
  • JENKINS-42031 xUnit Plugin Does Not Parse Some Boost 1.63 Test Reports (nfalco79 to aschet)
  • Relax BoostTest code line validation (nfalco79 to penberg)
  • Ensure testuite time attribute is valid for NUnit
  • JENKINS-24382 Add basic support for Unit

Version 1.100

  • Fix JENKINS-30812 - added parsing for gtest errors so that a failure to run a test is considered a test failure
  • Fix JENKINS-27240 - Workflow integration XUnit as a SimpleBuildSte

  • No labels


  1. Unknown User (rioch)

    I'm using boost test with this plugin and get the following output:

    [xUnit] Starting to record.
    [xUnit] Can't create the path D:\Develop\generatedJUnitFiles. Maybe the directory already exists.
    [xUnit] [BoostTest-1.35.0 (default)] - Processing 5 files with the pattern 'boost-test-*.xml' relative to 'D:\Develop'.
    [xUnit] [INFO] - Converting 'D:\Develop\boost-test-Module1.xml' .
    [xUnit] [INFO] - Converting 'D:\Develop\boost-test-Module2.xml' .
    [xUnit] [INFO] - Converting 'D:\Develop\boost-test-Module3.xml' .
    [xUnit] [INFO] - Converting 'D:\Develop\boost-test-Module4.xml' .
    [xUnit] [INFO] - Converting 'D:\Develop\boost-test-Module5.xml' .
    [xUnit] The plugin hasn't been performed correctly: None of the test reports contained any result
    Finished: FAILURE
    My boost test XML files do contains results, and lots of them. An example of a converted file is:

    <testsuite tests="2" errors="0" failures="0" name="Master Test Suite" skipped="0"/>

    I'm using boost 1.39 but I don't think that's the problem otherwise the conversion would fail, surely? I'm using 1.6 of the xunit plugin on Hudson 1.371.

    As a side note, I would have loved to have created a bug report for this, but Jira is less than obvious on how to do that.

    1. Unknown User (gbois)

  2. Unknown User (anberlin)

    What boost.test command line options I should use to create correct xml?

    1. Unknown User (gbois)

      run_tests --output_format=XML --log_level=all --report_level=no

      1. Unknown User (kleeven_atlis)

        It also works with --log_level=test_suite, which may be preferable. You don't get extra lines for every time boost checks something. This was breaking our build since one of our tests involved the checking of a large collections of points which lead to an XML file of 150MB.

        1. Unknown User (gbois)

          Thanks for the tip.

  3. Unknown User (margaritaville)


    I was wondering if xunit is gonna give a support for google test.

    Thank you

    1. Unknown User (gbois)

      Google Test produces native JUnit reports.
      Therefore xUnit plugin is not needed (xUnit plug-in is aimed at record non JUnit reports in Jenkins)
      For recording Google test reports, you have to use 'Publish JUnit test result report' in post-build actions

    2. Unknown User (jgoncalves)

      I really could use this too.

      I have to use Junit just to publish Gtest results, and then manage 2 plugins, Junit and this.

      And Junit does not have Thresholds definition.

  4. Unknown User (jarredzhong)

    Hi, I just used xUnit for my phpunit report. But if the result of the phpunit test is fail or error, there will be a xunit exception with message java.lang.NumberFormatException: For input string: "" thrown when build the job.

    I saw an related bug in JIRA about this issue but the status is still unresolved.

    Anyone have any ideas about this?


    1. Unknown User (jarredzhong)

      Found the workaround way to avoid this exception:

      Enter number in all the Failed and Error Thresholds fields instead of entering any strings or leave it empty in the configure page of the project.

      1. Unknown User (gbois)

        It was a bug. You can avoid the workaround by downloading the latest version.

        1. Unknown User (jarredzhong)

          just updated, thanks!

  5. Unknown User (matthiasscholz)

    What are the correct settings for the Logger setup? The provided information seams to be outdated.


    • com.thalesgroup.hudson.plugins.xunit.service.XUnitLog
    • com.thalesgroup.hudson.plugins.xunit.service.XUnitConversionService
    • com.thalesgroup.hudson.plugins.xunit.service.XUnitValidationService
    • com.thalesgroup.hudson.plugins.xunit.service.XUnitService
    • * XUnitService

    Using Jenkins 1.455 and xUnit plugin 1.40

    1. Unknown User (matthiasscholz)

      Ok, trial and error gave me the solution, it is just:

      • XUnitService
  6. Unknown User (jsirex)


    Why my build is recognized as unstable while no metric exceeded threshold value? Total/New set to 50/10, but Failed/New Failures is 38/-7 (+1). I cannot understand it from my logs:

    [xUnit] [INFO] - Starting to record.
    [xUnit] [INFO] - Processing JUnit
    [xUnit] [INFO] - [JUnit] - 31 test report file(s) were found with the pattern '**/target/surefire-reports/*.xml' relative to 'c:\opt\Jenkins\jobs\project-unit-tests\workspace' for the testing framework 'JUnit'.
    [xUnit] [INFO] - Check 'Failed Tests' threshold.
    [xUnit] [INFO] - Check 'Skipped Tests' threshold.
    [xUnit] [INFO] - Setting the build status to UNSTABLE
    [xUnit] [INFO] - Stopping recording.
    1. Unknown User (gbois)

      When the xUnit plugin changes the build status (Unstable or Failure), there is a plugin message displayed in the console (maybe except a case with a bug). Therefore, I think the build is set to UNSTABLE by an other plugin.
      I suggest you should try to isolate the problem in your context (maybe by deactivating temporarily the xUnit plugin and check the build status of a new build).

      1. Unknown User (jsirex)

        Look's like it is maven-multi-module issue. I've turned off xUnit. My project has only 1 module. This module contains unit-tests. With turned off xUnit test report for module still generated and probably made my build unstable.

        But when I used precent threshold instead of number threshold I got stable build.

        Also I have known issue that test reports haven't aggregated from module to parent.

        Generally, I still confused with jenkins and multi-module reporting :(

  7. Unknown User (ikku100)

    Would it be possible that the new version of xUnit causes the job configuration store functionality to crash? If I update to 1.47 I cannot "save" my configurations anymore.

    And then the other question is: how can I get an old release of this plugin? (this is probably a silly question)

    1. Unknown User (iota)

      wanna the old version too

    2. Unknown User (gbois)

      You are able to find all xUnit Jenkins plugin versions here: http://repo.jenkins-ci.org/releases/org/jenkins-ci/plugins/xunit/
      What is your issue when you save your job configuration?

  8. Unknown User (sbranden)

    We run 1000's of tests per day and get the following random result in a few tests per day. generatedJUnitFiles DOES exist yet the plugin occasionally does not find the directory.
    xUnit INFO - Starting to record.
    xUnit INFO - Processing JUnit
    xUnit INFO - JUnit - 2 test report file(s) were found with the pattern 'test_artifacts/*/.xml' relative to '/home/jenkins/tests/workspace/UEFI_SCT_Ele@2' for the testing framework 'JUnit'.
    ERROR: Publisher org.jenkinsci.plugins.xunit.XUnitPublisher aborted due to exception
    /home/jenkins/tests/workspace/UEFI_SCT_Ele@2/generatedJUnitFiles does not exist.
    at org.apache.tools.ant.types.AbstractFileSet.getDirectoryScanner(AbstractFileSet.java:483)
    at org.apache.tools.ant.types.AbstractFileSet.getDirectoryScanner(AbstractFileSet.java:460)
    at org.jenkinsci.plugins.xunit.XUnitPublisher$4.invoke(XUnitPublisher.java:292)
    at org.jenkinsci.plugins.xunit.XUnitPublisher$4.invoke(XUnitPublisher.java:287)
    at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2308)
    at hudson.remoting.UserRequest.perform(UserRequest.java:118)
    at hudson.remoting.UserRequest.perform(UserRequest.java:48)
    at hudson.remoting.Request$2.run(Request.java:326)
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:679)

  9. Unknown User (vladichko)


    it seems that current version of plugin only counts total number of failed tests, so that if there are 5 tests that failed, and on next run another set of 5 tests fails, it will not be able to detect a regression case here. 

    Is it possible to overcome this?

    1. Unknown User (gbois)

      Please could raise a new bug in the Jira tracker with your Jenkins job configuration (condfig.xml) and your test result file?
      Thanks in advance.

      1. Unknown User (vladichko)

        created new issue: JENKINS-16081 

  10. Unknown User (joespr)

    I am having an unsettling problem with xUnit and I need advice (or comforting!). Perhaps I need to do something different.

    Installed and using xUnit ok (using PHPUnit and VisualPHPUnit), and I get test case results in the job's (project's) test results. 

    But I do not see all failures. Some test case failures do not show up in test results. By inspecting the XML result files (or VisualPHPUnit files), I find more failures than are listed in project's test results. 

    Here's the configuration: I have a text file, it has a list of unit test filenames along with an argument of an IP address of a system that the unit test needs to know about. Using my Jenkins project's configuration script, I loop through the file to run the unit tests specified and the unit test does its thing. All ok I would think, all test runs etc. (Since the systems specified by IP addresses have different configurations, running the unit test multiple times is needed.) Here is an example:


    What I suspect is happening is that if a unit test fails, only the last failure of that specific unit test is reported by xUnit as a failure. So in my example, if for example unitTestA fails for both and on, only the last one is reported as a failure.

    So my question is, how do I get xUnit to report all failures even if the same unit test is run multiple times albeit with different arguments?

    Thanks for any advice.

    1. Unknown User (gbois)

      xunit plugin is aimed only at transforming of xUnit report format (PHP in your use case) into a JUnit report (Jenkins compatible).
      Please look at your initial report file and if you obsevre some lost data, please report an issue.

      1. Unknown User (joespr)

        Thanks for your reply.

        I created Jira https://issues.jenkins-ci.org/browse/JENKINS-17784

        When I looked into the logs, it appears that some of the generatedJUnitFiles did not end up in the junitResult.xml results.

        1. Unknown User (gbois)

          Issue resolved.

  11. Unknown User (maschuru)


    we use the XUnit plugin to analyze our custom tools TestResult.xml file, which implements the JUnit DTD.

    All was fine till the last Update (1.60).

    Now we get the following:Jun 28, 2013 12:48:53 PM com.thalesgroup.hudson.plugins.xunit.service.XUnitService errorSystemLogger
    SEVERE: xUnit - The result file 'C:\Jenkins\Jenkins\workspace\asdfad\Junit\TestResult.xml' for the metric 'JUnit' is not valid. The result file has been skipped.

    Jun 28, 2013 12:48:53 PM com.thalesgroup.hudson.plugins.xunit.service.XUnitService warningSystemLogger
    WARNING: xUnit - The file 'C:\Jenkins\Jenkins\workspace\asdfad\Junit\TestResult.xml' is an invalid file.

    Jun 28, 2013 12:48:53 PM com.thalesgroup.hudson.plugins.xunit.service.XUnitService infoSystemLogger
    INFO: xUnit - JUnit - 1 test report file(s) were found with the pattern 'Junit/*.xml' relative to 'C:\Jenkins\Jenkins\workspace\asdfad' for the testing framework 'JUnit'.

    Regarding your change log Version 1.60 seem to use a different version of XML schema for the Junit file, but Google didn't help me for the term "JUnit 6".

    So question 1:

    • What XML schema do you use to validate the Junit files against? (hyperlink would be fine (wink))

    And question 2:

    • How can i get a older (working) revision of the xUnit plugin e.g. 1.52 ?

    Thanx in advance

    1. Unknown User (maschuru)

      Sorry, is was halfblind that friday ;-)

      regarding question 2 I found the answer myself: http://updates.jenkins-ci.org/download/plugins/xunit/

      Question 1 is still open

  12. Unknown User (esutton)

    I am new to unit testing.  I am using CppUTest with C++.

    I expected xUnit Plugin to publish hyperlinks to the failed test file and line number.  The Cppcheck Plugin does this nicely.  Clicking on the link views the source file with offending line highlighted.

    Is hyperlink to test failure source a feature of xUnit?  If not has anyone figured out a way to accomplish this?  

    Thanks in advance,


    <testsuite errors="0" failures="1" hostname="localhost" name="Die" tests="7" time="0.177" timestamp="2013-12-18T16:53:29">
    <testcase classname="Die" name="ForceUnitTestFailure" time="0.000">
    <failure message="/absolute/path/to/test/source/dicegame/src/test/die_test.cpp:35: CHECK(false) failed" type="AssertionFailedError">

  13. Unknown User (shinstudio)

    The plugin has been working perfectly fine until several hours ago.

    [ xUnit ] [ INFO ] - Starting to record.
    [ xUnit ] [ INFO ] - Processing Custom Tool
    [ xUnit ] [ INFO ] - Custom Tool - 1 test report file(s) were found with the pattern 'TestResults/*.trx' relative to 'D:\Jenkins_Slave\workspace\MobileService' for the testing framework 'Custom Tool'.
    [ xUnit ] [ INFO ] - Check 'Failed Tests' threshold.
    [ xUnit ] [ INFO ] - Check 'Skipped Tests' threshold.
    [ xUnit ] [ INFO ] - Setting the build status to FAILURE
    [ xUnit ] [ INFO ] - Stopping recording.

    All of sudden a Jenkins job started failing with the message above.

    I noticed that a number of skipped tests were just less than 200, so I set the threshold for the failure of skipped test to 300 enough cover that thinking maybe it's causing the job to fail.

    Anyone has encountered a similar issue before?  

    1. Unknown User (shinstudio)

      It was actually fxcop plugin that failed it, but xUnit seems to have cascaded the build status and set it. Now everything looks good. 

  14. Unknown User (vladichko)

    Hi all, 

    I use this plugin for some tests that produce acsii colors,

    I use https://wiki.jenkins-ci.org/display/JENKINS/AnsiColor+Plugin to view colored results in console.

    but then when I come to review same logs in xunit xmls i can not see any colours, but i do see escape symbols.

    Is there a way to make it possible to see colors xunit results?

  15. Unknown User (aartemov)

    I want this plugin not to fail the job if there are no test reports. I added Junit tests and I thought that "Skip if there are no test files" is intended to help me with this, but this checkbox doesn't save it's status after I save changes in the job. I even changed false to true in configuration.xml file on the Jenkins server but it didn't help and no changes in the plugin configuration. I use Jenkins 1.541. Could you please help with this?

  16. Unknown User (aartemov)

    I want this plugin not to fail the job if there are no test reports. I added Junit tests and I thought that "Skip if there are no test files" is intended to help me with this, but this checkbox doesn't save it's status after I save changes in the job. I even changed false to true in configuration.xml file on the Jenkins server but it didn't help and no changes in the plugin configuration. I use Jenkins 1.541. Could you please help with this?

    1. Unknown User (gbois)

      It's a regression with the last version.
      Fixed for now.

      1. Unknown User (aartemov)

        Just updatet the plugin but still no success:

        [xUnit] [INFO] - [JUnit] - No test report file(s) were found with the pattern '*/test_rel//junit_report.xml' relative to '/var/lib/jenkins/workspace/test' for the testing framework 'JUnit'. Did you enter a pattern relative to the correct directory? Did you generate the result report(s) for 'JUnit'?xUnit WARNING - No test reports found for the metric 'JUnit' with the resolved pattern '/test_rel/*/junit_report.xml'.
        ERROR: Publisher org.jenkinsci.plugins.xunit.XUnitPublisher aborted due to exception
        java.lang.InterruptedException: org.jenkinsci.plugins.xunit.SkipTestException
        at hudson.FilePath.act(FilePath.java:905)
        at hudson.FilePath.act(FilePath.java:887)
        at org.jenkinsci.plugins.xunit.XUnitProcessor.performTests(XUnitProcessor.java:112)
        at org.jenkinsci.plugins.xunit.XUnitProcessor.performXUnit(XUnitProcessor.java:55)
        at org.jenkinsci.plugins.xunit.XUnitPublisher.perform(XUnitPublisher.java:80)
        at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
        at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:785)
        at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:757)
        at hudson.model.Build$BuildExecution.post2(Build.java:183)
        at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:706)
        at hudson.model.Run.execute(Run.java:1702)
        at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
        at hudson.model.ResourceController.execute(ResourceController.java:88)
        at hudson.model.Executor.run(Executor.java:230)
        Caused by: hudson.FilePath$TunneledInterruptedException: org.jenkinsci.plugins.xunit.SkipTestException
        at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2424)
        at hudson.remoting.UserRequest.perform(UserRequest.java:118)
        at hudson.remoting.UserRequest.perform(UserRequest.java:48)
        at hudson.remoting.Request$2.run(Request.java:328)
        at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:679)
        Caused by: org.jenkinsci.plugins.xunit.SkipTestException
        at org.jenkinsci.plugins.xunit.service.XUnitTransformer.invoke(XUnitTransformer.java:144)
        at org.jenkinsci.plugins.xunit.service.XUnitTransformer.invoke(XUnitTransformer.java:15)
        at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2422)
        ... 9 more
        Finished: FAILURE

        I don't have any files with report in this build and want the build not to fail because of this.

        1. Unknown User (gbois)

          I think your plugin is not updated correctly.
          Please report an issue. Wiki is not the right place for managing issues.

  17. Unknown User (djustin)

    I'm unable to convert cpp unit test xml's that have failures in them:

    xUnit ERROR - The result file 'D:\Jenkins\workspace\zTestCalls\result.xml' for the metric 'CppUnit' is not valid. The result file has been skipped.

    Structure of failures:<?xml version="1.0" encoding='ISO-8859-1' standalone='yes' ?>
    <FailedTest id="8">
    <Message>forced failure

    • Unexpected Patient ID:
      <TestPath>/All Tests/SerializeTest/SerializeTest::testUpdateAKA</TestPath>
  18. Unknown User (teojorlen)

    I run the Ceedling framework using ryby for unit tests and Jenkins of course. I found a plugin that outputs cppUnit xml formatted results and it works great as long as no tests fail. My very simple results file is pasted below. The build fails with the following message:xUnit ERROR - The result file 'C:\Jenkins\jobs\Test\workspace\Ceedling\build\artifacts\test\report.xml' for the metric 'CppUnit' is not valid. The result file has been skipped.

    Could someone please help me pinpoint the problem so I can update the ruby script that generates the xml file.

    <?xml version='1.0' encoding='utf-8' ?>
    		<FailedTest id="1"/>
    			<Message>Expression Evaluated To FALSE</Message>
    1. Unknown User (teojorlen)

      Found the error, it is the a stray '/' after 'id="1" and </Test>  should be </FailedTest>.

  19. Unknown User (ndinev)

    I am trying to xUnit to work with a an jUnit xml report but it always throw "... for the metric 'JUnit' is not valid. The result file has been skipped."

    The xml file is working perfectly with standard "Publish jUnit report" build in plug in so I assume it is valid junit xml file. Xml file is generated by nosexunit for python

    The jenkins log doesn't show more info that above one.

    Below are the first few lines of the xml.

    <?xml version="1.0" encoding="UTF-8"?><testsuite name="Smoke Tests" tests="24" errors="0" failures="0" time="0.000">
        <testcase classname="SmokeTests" name="test_0012_GetUser" time="0.505">
            <success type="test_0012_GetUser">
                <![CDATA[test_0012_GetUser (__main__.SmokeTests)]]>

    I did find many mentioning of this problem in the internet but no solution was provided

    Any help is appreciated

  20. Unknown User (gusgonnet72)


    I am not able to understand whether this plugin takes a CSV file as an input.

    can you please comment on this?

    if the answer is yes, can you provide an example of the expected CSV?

    thank you


    1. Unknown User (steptiger)

      Hi there,

      actually I still don't get it working for me. Currently I am figuring out how to integrate boost test results into xUnit-Plugin, but console log keeps complaining:

      [xUnit] [INFO] - Processing BoostTest-1.x (default)
      [xUnit] [INFO] - [BoostTest-1.x (default)] - 1 test report file(s) were found with the pattern 'DynoDesk/bin/testResults/*.xml' relative to '/var/lib/jenkins/jobs/DynoDesk/workspace' for the testing framework 'BoostTest-1.x (default)'.
      [xUnit] [ERROR] - There is at least one problem. Check the Jenkins system log for more information. (if you don't have configured yet the system log before, you have to rebuild).
      [xUnit] [INFO] - Setting the build status to FAILURE
      [xUnit] [INFO] - Stopping recording.

      with system log output:

      [xUnit] - [BoostTest-1.x (default)] - 1 test report file(s) were found with the pattern 'DynoDesk/bin/testResults/*.xml' relative to '/var/lib/jenkins/jobs/DynoDesk/workspace' for the testing framework 'BoostTest-1.x (default)'.Mrz 05, 2015 12:15:50 PM WARNUNG org.jenkinsci.plugins.xunit.service.XUnitService warningSystemLogger[xUnit] - The file '/var/lib/jenkins/jobs/DynoDesk/workspace/DynoDesk/bin/testResults/SchedulerExampleAuto_Test.xml' is an invalid file.Mrz 05, 2015 12:15:50 PM WARNUNG org.jenkinsci.plugins.xunit.service.XUnitService warningSystemLogger[xUnit] - At line 1 of file:/var/lib/jenkins/jobs/DynoDesk/workspace/DynoDesk/bin/testResults/SchedulerExampleAuto_Test.xml:cvc-elt.1: Deklaration des Elements "TestResult" kann nicht gefunden werden.Mrz 05, 2015 12:15:50 PM SCHWERWIEGEND org.jenkinsci.plugins.xunit.service.XUnitService errorSystemLogger[xUnit] - The result file '/var/lib/jenkins/jobs/DynoDesk/workspace/DynoDesk/bin/testResults/SchedulerExampleAuto_Test.xml' for the metric 'BoostTest' is not valid. The result file has been skipped.

      and result file:

      <TestResult><TestSuite name="Example" result="passed" assertions_passed="1" assertions_failed="0" expected_failures="0" test_cases_passed="1" test_cases_failed="0" test_cases_skipped="0" test_cases_aborted="0"></TestSuite></TestResult>

      Using plugin version 1.94 and boost version 1.54 on jenkins 1.601.

      Any help would be greatly appreciated.


      Ok, already got it. Finally It came down to reading some comments, which was - usually thinking of this as the first thing to do - exactly what helped me. Just used -report-format instead of --output-format. Thanks anyway! ;)

  21. Unknown User (antstephenson)

    Hi there,

    We have multiple XML files and we would like it NOT to aggregate the results and display them in separate graphs, is this possible already and am I missing some knowledge somewhere, if not - would you be willing to support this feature? Currently if you manually specify two JUnit XML results files it aggregates the results together into one graph.

  22. Unknown User (dlemberger)

    I am using the SkippableFact Function from XUnit and the Tests i run in Jenkins with this Function doesn't show Test names in the Result Section.


    Here i have made an overview, with screenshots of the problem

  23. Unknown User (ashu3112)

    Thanks for this great plugin!!

    I am using xUnit plugin and JUnit component.
    I can see multiple "Latest Test Result" links,along with Multiple "Test Result Trendgraphs.
    Also,the graphs have no data,where as the test cases data can be seen by clicking on the "Latest Test Result" link.
    Also,the "Test Result Trend" has always the latest build number only and is always empty.

    I am assigning build number to my jobs via a groovy script(so that all my jobs can share unique build numbers across jenkins),and I feel the same causes the graphs to have the only the latest build number,and thus the blank "Test Result Trend" graph.
    The Test results however can be easily used/consumed by other plugins like "tests results analyser"

  24. Unknown User (odklizec)


    I've recently updated Jenkins to 2.9 (from 2.6), including all slave.jars and all plugins with their most recent versions. All of suddenly, job started at one particular slave hangs at xunit processing, which worked OK so far.

    This is what I see in job console:

    Build step 'Conditional steps (multiple)' marked build as failure
    Archiving artifacts
    [xUnit] [INFO] - Starting to record.
    [xUnit] [INFO] - Processing Custom Tool
    [xUnit] [INFO] - [Custom Tool] - 1 test report file(s) were found with the pattern 'Reports\unpacked*_build-5481.rxlog.data' relative to 'c:\Jenkins\workspace\SecurexMonitoring' for the testing framework 'Custom Tool'.

    From time to time, the xunit processing finishes after unusually long period of time. But in most cases, I need to kill the job manually, because it blocks other jobs.

    Virtually the same works fine on two other slave machines. The only difference between the slaves is that the not-working one is located in different data center. But it was there also before. The response time of the problematic slave is around 150ms, so it should not be an issue either? Jenkins configuration should be the same on all three slaves.

    Once I kill the 'hanged' job, it throws this exception to master console:

    Jun 14, 2016 12:45:27 PM WARNING hudson.model.AbstractBuild$AbstractBuildExecution reportError
    Step ‘Publish xUnit test result report’ aborted due to exception:
    at java.lang.Object.wait(Native Method)
    at hudson.remoting.Request.call(Request.java:147)
    at hudson.remoting.Channel.call(Channel.java:780)
    at hudson.FilePath.act(FilePath.java:1007)
    at hudson.FilePath.act(FilePath.java:996)
    at org.jenkinsci.plugins.xunit.XUnitProcessor.performTests(XUnitProcessor.java:145)
    at org.jenkinsci.plugins.xunit.XUnitProcessor.performXUnit(XUnitProcessor.java:88)
    at org.jenkinsci.plugins.xunit.XUnitPublisher.perform(XUnitPublisher.java:142)
    at org.jenkinsci.plugins.xunit.XUnitPublisher.perform(XUnitPublisher.java:134)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:720)
    at hudson.model.Build$BuildExecution.post2(Build.java:185)
    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:665)
    at hudson.model.Run.execute(Run.java:1745)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:410)

    Any idea what could be the cause of this problem or what to try to fix it? Feel free to let me know if you need more details.

  25. In the scenario where the unit tests are being run inside Docker containers, what is the recommended method for collecting the results from the Jenkins worker so that this plugin can process them on, e.g., Jenkins master?  Is anyone doing this?

    1. Unknown User (coryfklein)

      Just came here with the exact same question. Figuring out how to make this work now.

      1. Unknown User (prasanthp96)

        Hi Unknown User (odklizec)  Chad Dougherty  can you please tell me how you fixed the issue ? I am also facing the same issue now.

  26. Unknown User (tiagobarroso_symphy)

    Hello! I have an issue regarding to the "error result display panel" (the table that shows what test has failed).

    The display is showing the wrong test name, it's mixing the method name itself with the test alias, somenthing like:

    "MyClass.CheckApplicationWindand after check the result"

    Basically this table result shows the test name, although I've set up the XUnit to display a personalized name for each test and than i get this error.

    The method has this attribute

    [Fact(DisplayName = "Check application entries on Windows.")]
    public void CheckApplicationWindowsEntries()


    This is a brief example of result xml

    <test name="Check application entries on Windows." type="UITest.UITest" method="CheckApplicationWindowsEntries" time="5.1170766" result="Fail">
    <output><![CDATA[Starting test: CheckApplicationWindowsEntries Sleeping 5 second(s)]]>

    1. Unknown User (nfalco)

      Unknown User (tiagobarroso_symphy) this is not the right place to post issues. Please fill a detailed bug on the Jenkins issue tracker (remember to also the generated report)

  27. Unknown User (dannarsavage)

    I'm trying to set up my first pipeline.  It includes the use of the XUnit plugin, and I'm not sure if my problem is caused by my lack of understanding or a real issue.

    I have a unit test project with tests that pass.  I added a second such project with two tests that will not pass until I get mocking & other stuff set up, so I tagged them to be skipped for now.  Because I like seeing green things, I modified the pipeline to allow 1000 skipped tests thusly . . .

    xunit (
       thresholds: [ skipped(failureThreshold: '1000'), failed(failureThreshold: '0') ],
       tools: [
          xUnitDotNet(pattern: '**\\TestResults\\*.xml')

    The pipeline executed successfully and I get the little blue "SUCCESS" icon next to the build, however the grid row for that build is colored red.  Commenting out the execution of the tests in the project containing the skipped tests (and making no other changes), the grid row for that build is colored green.  Am I missing something in my Groovy, or is this a bug in Jenkins or this plugin?

    1. Unknown User (dannarsavage)

      I updated some "Pipeline: *" plugins after posting this comment and the issue disappeared.  <shrug>