In this section:
The following diagram shows how you could implement an automated infrastructure for integrating Parasoft DTP and Parasoft test execution tools into your Azure DevOps Connect environment:
Azure user configuration requirement: user access level must include "Test Plans" in Azure DevOps in order for Parasoft DTP to be able to send test results to Azure DevOps. This is required because Parasoft DTP creates test plans when it sends the results to Azure DevOps. To configure an Azure DevOps test plan, do one of the following: To set up a Test Plan in Azure DevOps for the local version you need to:
To set up a Test Plan in Azure DevOps for the cloud you need to:
|
To send test data to Azure DevOps:
In your test file, map the Azure DevOps Connect system requirement IDs to the tests using the following annotation format:
For users who have not created their own test case definition to see traceability results in Azure DevOps, use @req
:
|
Use @req
in Parasoft and trigger sending results from Parasoft DTP to Azure DevOps.
For users who have created their own test case definition in Azure DevOps, use @test
:
* The following annotation maps the test to a requirement: * @test <<Azure DevOps ID> > @TEST ... |
Associate each test case definition with your tested requirement in Azure DevOps.
Use the @test <Azure DevOps ID>
annotation to associate tests with test definitions in Azure DevOps. When using @test
make sure that you have no test case steps defined in the tests whose run statuses you plan to send from Parasoft DTP to Azure DevOps. Parasoft DTP is not able to update test case runs for test cases that have steps defined.
@req <Azure DevOps ID>
annotation to associate tests with stories in Azure DevOps. When using @req
make sure the following relation type is defined in the Azure DevOps project you plan to send results to: "verified by". Such relation is needed by Parasoft DTP when it creates a test case in Azure DevOps and relates it to a requirement in Azure DevOps.If you deployed the Sending Test Data to External System flow (see Deploying the Sending Test Data to External System Flow), then unit and functional testing results will automatically be sent to Azure DevOps Connect when Data Collector receives the data from the Parasoft tool. By default, the flow forwards unit and functional test results that were received by Data Collector for any project, but you can configure the flow to only send data for a specific project (see Sending Results from a Specific DTP Project).
You can also manually send a POST request to the DTP REST API endpoint to send results from the DTP database to Azure DevOps Connect. Pass the IDs for the DTP filter and build, as well as the ID for a set of Azure DevOps test cases, as URL parameters in the API call:
curl -X POST -u <username>:<password> "http://<host>:<port>/grs/api/v1.7/linkedApps/configurations/1/syncTestCases?filterId=<filterID>&buildId=<buildID> |
The filter and build IDs are available in the Test Explorer URL:
The following table describes the endpoint parameters.
Parameter | Value | Description | Required |
---|---|---|---|
filterId | integer | Specifies the filter ID containing the test data. The filter ID is an integer value and should not be confused with the filter name. | Required |
buildId | string | Specifies the build ID containing the test data. | Required |
| boolean | Setting to Setting to Default is | Optional |
testPlanId | integer | Specifies the test plan ID in Azure DevOps to which to send the results. DTP will generate a test suite in the format of "Results from Parasoft DTP - <DTP_PROJECT_NAME>" in the specified test plan. Test cases to be synced will be copied into this test suite and their test points will be run. If the test suite was generated previously, then it is re-used in future syncTestCases runs against the specified test plan. If this is not specified, DTP will generate a new Test Plan and sync the test case results into that Test Plan. | Optional |
updateResultsOnly | boolean | Specifies a syncing mode where test cases in a particular test plan will be updated in-place. If set to Default is | Optional |
If you are using the You can configure DTP to recognize as many Azure DevOps implementations as needed by adding them to the end of the ExternalSystemSettings.properties file located in the
This configuration—"config1"—will cause data from the DTP project "bank" to be sent to the external project called "Bank" on the server Understanding this, you can use the example above as a template to define additional configurations for your other Azure DevOps implementations. Each configuration must have a unique "azuredevops.config#" value. For example, using the configuration shown above as a base, a second configuration might look something like this:
You can set up as many configurations as you need. Some things to keep in mind:
The API call will determine which configuration to use based on the |
filterId
and buildId
parameters and send the data to the Azure DevOps Connect system requirements.@req <ID>
, it will search for a matching item in Azure DevOps. If a match is found, test results will be added to the test cases associated with the item. If there are no test cases for the requirement ID, then test cases will be created and test runs will be added to them.An external-app.log file will also be written to the the <DTP_INSTALL>/logs
directory. This log file contains progress information about sending test results from DTP to Azure DevOps.
After DTP processes the report and sends results to Azure DevOps, you should expect a response similar to the following:
{ "createdTestSession": "DTPP-521", "created": [ "DTPP-519, testName = testBagSumAdd" ], "updated": [ "DTPP-519, testName = testBagSumAdd", "DTPP-518, testName = testBagSimpleAdd" ], "ignored": [ "MAGD-567, testName = testBagNegate", "QAP-512, testName = testTryThis3", "QAP-512, testName = testTryThis4", "MAGD-567, testName = testBagMultiply" ] } |
If you are using the Sending Test Data to External System flow to forward unit and functional test results, data will be sent to Azure DevOps for all DTP projects by default. As a result, work items will be updated to include the tests collected for any DTP project that contain annotations matching Azure DevOps IDs. You can configure the flow, however, to only send data for a specific project.
true
. This toggles on the ability to only send data to specific projects.Double-click the Configure Projects node. The logic in this node specifies which DTP projects should have their data sent to Azure DevOps during the sync operation. These project configurations are stored in a JSON array.
There is a sample project configuration already defined as an example:
{ project: 'abc' } |
To add more project configurations, add a comma to the end of the last project configuration and add a new entry below it. For example:
msg.configuredProjects = [ { project: 'abc' }, { project: 'foobar' } ]; |
These configurations also support an additional option for specifying a plan ID to which to sync results. For example:
{ project: 'foobar', plan: 350 } |
updateResultsOnly=true
parameter to toggle the syncing mode, if desired. Double-click the linkedApps - syncTestCases node and add the parameter to the end of the Endpoint field, then click Done.When the flow executes, only test results for the specified DTP project will be sent to Azure DevOps.
You will be able to view results in Azure DevOps after sending the test data. The following image shows a System Requirement Specifications requirement in Azure DevOps. The requirement contains several test cases.
You can drill down into a test case to view details, such as test runs for the test case.