In this section:
The Parasoft Findings extension is designed to be used in a post-test execution build step that integrates functional and unit test reports as well as static analysis reports and code coverage reports, including support for quality gate checks, generated by Parasoft tools into your Azure DevOps project. The extension can consume the following report types:
See https://docs.microsoft.com/en-us/azure/devops/marketplace/install-extension?view=vsts in the Azure DevOps documentation for additional information.
(Optional) Configure the Reference build field. If you want to use specific build as a reference, specify the reference build number. To use the last successful build, leave this field empty.
Reference pipeline and Reference build are not supported in a release pipeline. If you are not using quality gates, the reference pipeline and build can be used to filter results by Baseline on the Scans tab. If you are using quality gates, they can be used as a baseline build when the quality gate needs one. |
You can set multiple quality gates that evaluate after issues are reported. These gates adjust the build status based on desired product quality, setting builds to 'unstable' or 'failed'. Each gate measures against a specific metric: the number of issues of a certain type and severity. This feature is not supported in a Release pipeline.
You need to set a baseline by running the Publish Parasoft Results task first in order to perform quality gate checks. |
You can set multiple quality gates that evaluate after coverage results are reported. These gates adjust the build status based on desired product quality, setting builds to 'unstable' or 'failed'. Each gate measures against the value of code coverage of a certain type. This feature is not supported in a Release pipeline.
Edit an existing pipeline or create a new pipeline and click Add Task.
Search for "Parasoft Code Coverage Quality Gate" using the search field.
Select the extension and click Add.
You need to set a baseline by running the Publish Parasoft Results task first in order to perform quality gate checks. |
You can set multiple quality gates that evaluate after test results are reported. These gates adjust the build status based on desired product quality, setting builds to 'unstable' or 'failed'. Each gate measures against the number of test results of a certain type. Please note that the "Newly failed tests" type is not supported in a Release pipeline.
You need to set a baseline by running the Publish Parasoft Results task first in order to perform quality gate checks. |
A typical build configuration would consist of the following steps:
Test results reports are collected from the Parasoft report XML files and the number of passed/failed tests and result details are shown. Build results can also be displayed as trending data in a graph for a simple visualization.
Open the Azure DevOps build configuration page and click on the last build results link next to the build name to view the number of passed/failed tests and result details.
The build results overview page tab provides the success and error count:
The build results shown in the Tests tab contains the list of all Parasoft tests that ran in the build.
Clicking the Build step in the build tree displays logging information in case debugging is needed.
The build results overview page provides a histogram of the number of failing tests for each run. The dashboard also provides widgets for overall test result trends.
To view historical details of a particular Parasoft test, click on a test and click View History. A page with the detailed test history will open.
C/C++test reports for unit test results must be generated with the Overview of checked files and executed tests option enabled. You can enable this option on the command line by using the option -property report.contexts_details=true
or by setting the report.contexts_details=true
property in the settings file.
Starting with version 2024.1, you can also use the command line option -property report.additional.report.dir=<REPORT_DIR>
when generating the reports and use reports generated in this directory.
Static analysis reports are collected from the Parasoft report XML files and display static analysis data and rule documentation. This feature is not supported in a Release pipeline.
Viewing static analysis reports in Azure DevOps requires the Azure DevOps extension "SARIF SAST Scans Tab" from Microsoft DevLabs. You can download it for free from the Visual Studio Marketplace. Once this extension is installed, you will have a Scans tab on build details pages.
If you did not configure the extension to include Static Analysis Reports when you set it up the first time, you will need to make a few changes to it:
dtp.url
property equal to your DTP server address. Save this file.After you have completed the prerequisites and configuration steps described above, your builds will have a Scans tab on which static analysis reports can be viewed. In addition to these reports, clicking a linked rule name on the Scans tab will show that rule's documentation.
If you are generating static analysis reports with C/C++test Professional 2023.1 or earlier, make sure the Add absolute file paths to XML data option is enabled to link the source code if it is stored in the Azure Repos Git. You can enable this option on the command line by setting the report.location_details=true
property in the settings file.
Code coverage reports are collected from the Parasoft report XML files and display summary information and class-specific coverage data. Only data for the last matched coverage report is shown. This feature is not supported in a Release pipeline.
Open the Azure DevOps build configuration page and click on the last build results link next to the build name and click the Code Coverage tab.
Click a specific class in the Coverage section to view which lines are covered or uncovered.
Code coverage reports for C/C++test Professional are not supported for versions prior to 2024.1.
Starting with version 2024.1, you can also use the command line option -property report.additional.report.dir=<REPORT_DIR>
when generating the reports and use reports generated in this directory.
To configure the extension for static analysis quality gates, see Configuring the Parasoft Static Analysis Quality Gates Task. The summary of static analysis quality gates results will be shown on the Extensions tab.
To configure the extension for code coverage quality gates, see Configuring the Parasoft Code Coverage Quality Gate Task. The summary of code coverage quality gates results will be shown on the Extensions tab.
To configure the extension for quality gates, see Configuring the Parasoft Test Results Quality Gate Task. The summary of quality gates results will be shown on the Extensions tab.
This issue can occur when Parasoft Findings processes large reports. Configure the Root path to Parasoft tool/Java installation field to use Java for report processing instead of JavaScript, which is default. You can check the debug logs to see whether Java is being used to process the report or not.
This issue can occur when Parasoft Findings processes large reports, even if the Root path to Parasoft tool/Java installation field is set to use Java. It is a limitation of JAXP. Refer to the Using the jaxp.properties File section for informationg regarding changing the value of the jdk.xml.totalEntitySizeLimit
property to a large value.
Alternatively, you can add a system environment variable that sets -DtotalEntitySizeLimit
and -Djdk.xml.totalEntitySizeLimit
to a large number. For example:
JAVA_TOOL_OPTIONS=-DtotalEntitySizeLimit=2147480000 -Djdk.xml.totalEntitySizeLimit=2147480000
The Parasoft Findings Plugin for Azure DevOps uses the following third-party software:
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an ISC license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an ISC license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an ISC license.
This software is used under an ISC license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under a BSD 3-Clause license.
This software is used under an MIT & GPL-3.0 license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an ISC license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an ISC license.
This software is used under an MIT license.
This software is used under an ISC license.
This software is used under an MIT license and a Zlib license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under a BSD 3-Clause license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an Apache 2.0 license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under WFTPL and ISC licences.
This software is used under an ISC license.
This software is used under an MPL 2.0 license.
This software is used under the following license.
This software is used under an ISC license.
This software is used under an MIT license.
This software is used under a BSD 3-Clause license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under a WTFPL license and an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under a WTFPL license and an MIT license.
This software is used under an MIT license.
This software is used under an MIT license.
This software is used under a BSD 2-Clause license.
This software is used under an MIT license.
This software is used under an ISC license.
This software is used under an Apache 2.0 license.
This software is used under an W3C license.
This software is used under the following license.