Sending Test Data to Polarion

The following diagram shows how you could implement an automated infrastructure for integrating Parasoft DTP and Parasoft test execution tools into your Polarion ALM environment:

  1. Create work items in Polarion ALM that will be associated with tests executed by Parasoft C/C++test, dotTEST, or Jtest.
  2. In your test file, add the Polarion test case or requirement IDs using the @test or @req annotation. See the C/C++test, dotTEST, or Jtest documentation for details on adding annotations.
    • Use the @test <Polarion unit test case ID> annotation in your tests to associate them with Polarion unit test cases. 
    • Use the @req <Polarion software/system requirement ID> annotation in your tests to associate them with Polarion software or system requirements. 
    • The Polarion unit test case or requirement ID is available in several Polarion interfaces, such as the URL:
  3. Execute your tests as part of the CI process. You can also manually execute the tests from the C/C++test desktop. 
  4. As part of the test execution, C/C++test will tag the results with the filter and build IDs and send the data to DTP. You can verify the results in DTP by adding Test Widgets to your DTP dashboard and setting the filter and build ID. C/C++test developers can download the test execution data from DTP into their IDEs so that they can address any failed tests.
  5. 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 Polarion 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 Polarion. Pass the DTP filter and build IDs 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:

  6. DTP will locate the test results that match the filterId and buildId parameters and send the data to the Polarion unit test cases or requirements. You should expect the following response:
    • When DTP locates results with an @test <ID>, it will search for unit test cases with a matching ID in Polarion and update the item. No action will be taken if the unit test case IDs do not exist in Polarion.

    • When DTP locates results with an @req <ID>, it will search for requirements with a matching ID in Polarion and update associated children unit test cases. If no unit test cases exist for the requirement IDs, unit test cases will be created. Unit test cases will also be created if the requirement IDs are not found.  

    • An external-app-sync.log file will also be written to the <DTP_INSTALL>/logs directory. This log file contains progress information about sending test results from DTP to Polarion. 

After DTP processes the report and sends results to Polarion, 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"
    ]
}

Sending Results from a Specific DTP Project

If you are using the Sending Test Data to External System flow to forward unit and functional test results, data will be sent to Polarion 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 Polarion IDs. You can configure the flow, however, to only send data for a specific project. 

  1. Open Extension Designer and open the service where the Sending Test Data is deployed.
  2. Double-click the Toggle Projects Mode node and set the value from the menu to true. This toggles on the ability to only send data to specific projects.
  3. Click Done.
  4. 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' }
    ];
  5. Once the desired projects have been configured, click Done.
  6. Click Deploy to update the flow with these changes.

When the flow executes, only test results for the specified DTP project will be sent to Polarion. 

Viewing Results in Polarion

After successfully sending the test data to Polarion, you will be able to view results in Polarion. 

 You can drill down into Polarion reports to view additional details about the tests, including authorship, location, and execution time. Refer to the Polarion documentation for details about understanding reports in Polarion.

  • No labels