The following plugin provides functionality available through Pipeline-compatible steps. Read more about how to integrate steps into your Pipeline in the Steps section of the Pipeline Syntax page.

For a list of other such plugins, see the Pipeline Steps Reference page.

JUnit Plugin

junit: Archive JUnit-formatted test results

Jenkins understands the JUnit test report XML format (which is also used by TestNG). When this option is configured, Jenkins can provide useful information about test results, such as historical test result trends, a web UI for viewing test reports, tracking failures, and so on.

To use this feature, first set up your build to run tests, then specify the path to JUnit XML files in the Ant glob syntax, such as **/build/test-reports/*.xml. Be sure not to include any non-report files into this pattern. You can specify multiple patterns of files separated by commas.

Once there are a few builds running with test results, you should start seeing something like this.

  • testResults
    • Type: String
  • allowEmptyResults (optional)
    If checked, the default behavior of failing a build on missing test result files or empty test results is changed to not affect the status of the build. Please note that this setting make it harder to spot misconfigured jobs or build failures where the test tool does not exit with an error code when not producing test report files.
    • Type: boolean
  • healthScaleFactor (optional)
    The amplification factor to apply to test failures when computing the test result contribution to the build health score.
    The default factor is 1.0
    • A factor of 0.0 will disable the test result contribution to build health score.
    • A factor of 0.1 means that 10% of tests failing will score 99% health
    • A factor of 0.5 means that 10% of tests failing will score 95% health
    • A factor of 1.0 means that 10% of tests failing will score 90% health
    • A factor of 2.0 means that 10% of tests failing will score 80% health
    • A factor of 2.5 means that 10% of tests failing will score 75% health
    • A factor of 5.0 means that 10% of tests failing will score 50% health
    • A factor of 10.0 means that 10% of tests failing will score 0% health
    The factor is persisted with the build results, so changes will only be reflected in new builds.
    • Type: double
  • keepLongStdio (optional)
    If checked, any standard output or error from a test suite will be retained in the test results after the build completes. (This refers only to additional messages printed to console, not to a failure stack trace.) Such output is always kept if the test failed, but by default lengthy output from passing tests is truncated to save space. Check this option if you need to see every log message from even passing tests, but beware that Jenkins's memory consumption can substantially increase as a result, even if you never look at the test results!
    • Type: boolean
  • testDataPublishers (optional)
      Array/List
      Nested Choice of Objects
    • $class: 'AttachmentPublisher'
      • $class: 'AutomateTestDataPublisher'
        • $class: 'ClaimTestDataPublisher'
          • $class: 'JUnitFlakyTestDataPublisher'
            • jiraTestResultReporter
              • configs
                  Array/List
                  Nested Choice of Objects
                • jiraSelectableArrayField
                  • fieldKey
                    • Type: String
                  • values
                      Array/List
                      Nested Object
                    • value
                      • Type: String
                • jiraSelectableField
                  • fieldKey
                    • Type: String
                  • value
                    • Type: String
                • jiraStringArrayField
                  • fieldKey
                    • Type: String
                  • values
                      Array/List
                      Nested Object
                    • value
                      • Type: String
                • jiraStringField
                  • fieldKey
                    • Type: String
                  • value

                    Insert a string value.

                    You can include Jenkins Environment variables (see link), or the following variables defined by this plugin:

                    Variable usage: ${VAR_NAME}

                    CRFL - new line

                    DEFAULT_SUMMARY - configured in the global configuration page

                    DEFAULT_DESCRIPTION - configured in the global configuration page

                    TEST_RESULT

                    TEST_NAME

                    TEST_FULL_NAME

                    TEST_STACK_TRACE

                    TEST_ERROR_DETAILS

                    TEST_DURATION

                    TEST_PACKAGE_NAME

                    TEST_STDERR

                    TEST_STDOUT

                    TEST_OVERVIEW

                    TEST_AGE

                    TEST_PASS_COUNT

                    TEST_SKIPPED_COUNT

                    TEST_FAIL_SINCE

                    TEST_IS_REGRESSION - expands to true/false

                    BUILD_RESULT

                    WARNING: Your input will not be validated against the server's metadata. Check Jira to make sure you insert a valid value for this field and use the Validate Fields button bellow, otherwise the plugin will fail to create your issue.

                    • Type: String
                • $class: 'UserFields'
                  • fieldKey
                    • Type: String
                  • value

                    Insert the username.

                    For example if you have a user with:

                    Display Name: John Doe, Username: johndoe, Email: johndoe@email.com,

                    you need to write johndoe in this field. Any other value (like display name, or email) will not work.

                    • Type: String
              • projectKey
                • Type: String
              • issueType
                • Type: String
              • autoRaiseIssue
                Create issues automatically for failing tests that don't yet have one linked.
                • Type: boolean
              • autoResolveIssue
                Automatically apply transition to resolve issues linked to tests, if the test passes.
                Experimental feature: For now it only looks for the first transition that contains in its name "resolve". If it is found, it will be applied, if not, the status of the issue will not change. In future releases this will be parametrized.
                • Type: boolean
              • autoUnlinkIssue
                • Type: boolean
            • $class: 'JunitResultPublisher'
            • If checked, each JUnit test result XML file will be examined to see if it represents a SOASTA CloudTest composition. For applicable tests, a hyperlink to the SOASTA CloudTest dashboard will be inserted into the test report.
              • urlOverride
                Specify the CloudTest URL to use when creating hyperlinks to CloudTest dashboards. Normally, this can be left blank, and the URL will be extracted from the test result file.
                • Type: String
            • $class: 'PerfSigTestDataPublisher'
              • dynatraceProfile
                • Type: String
            • $class: 'SahaginTestDataPublishser'
              • $class: 'SauceOnDemandReportPublisher'
              • Show embedded Sauce OnDemand reports, including video and logs. Your test should use Selenium client factory (at least version 1.3 to match test cases to individual Sauce OnDemand jobs).
                • jobVisibility (optional)
                  Set your test results visibility permissions. The Sauce Documentation has all the various levels described in detail.
                  • Type: String
              • $class: 'StabilityTestDataPublisher'
                • $class: 'TestReporter'

                Was this page helpful?

                Please submit your feedback about this page through this quick form.

                Alternatively, if you don't wish to complete the quick form, you can simply indicate if you found this page helpful?

                    


                See existing feedback here.