This section describes the test impact analysis workflow for Jtest desktop users. For information about test impact analysis from the command line, see Testing and Analysis with Maven and Testing and Analysis with Gradle.
In this section:
Jtest's test impact analysis helps you optimize your testing efforts by automatically detecting test cases affected by modified code. This allows you to identify and re-run only the tests that are affected by your changes.
Jtest identifies unit tests impacted by code changes in the following ways:
The Impacted Unit Tests view will combine results from both ways of identifying tests.
Although the Impacted Unit Tests view will automatically display tests based on unit test naming conventions, the code coverage data provides more accurate results and will likely identify additional tests that need to be run. For this reason, it is recommended to ensure that code coverage data from your most recent full unit test run is imported into your IDE before reviewing Impacted Tests.
Test impact analysis is available for projects that are stored in a version control system integrated with your IDE.
1 The Impacted Unit Tests view does not populate correctly when running in an IDE with Java 16 or later. See Known Limitations for information about the workaround.
For the most accurate results, ensure that coverage data related to the source code you modify is available in the Coverage View in your IDE. To achieve this, you need to integrate Jtest into your unit test execution to collect the coverage data in an XML file or report it to DTP, and then import the data to your IDE.
Information about correlations between tests and code persists between restarts of the IDE–even if the Coverage view does not display any coverage data after a restart. You can refresh correlations by re-importing coverage from a file or DTP to your IDE.
Re-import coverage data for the most recent test run on a regular basis to ensure that correlations are up to date with source code and tests in your version control system. |
The coverage.xml
file is generated when you run unit tests with your build tool (Maven, Ant, or Gradle) integrated with Jtest on your CI server. You can choose the option to import the coverage data from the file if all your unit tests are executed in a single test run.
Configure your unit test execution job to collect coverage data with Maven, Gradle, or Ant. When the job runs, coverage for executed tests will be saved in a coverage.xml
file in the job location on the server. Configure your job to save the file in a location from which it can be easily downloaded.
You can choose the option to import coverage data from DTP if there are multiple test runs you want to collect coverage for.
You can monitor and re-run tests impacted by your code changes in the Impacted Unit Tests view. To open the view, choose Parasoft > Show View > Impacted Unit Tests in your IDE menu bar.
Jtest automatically monitors all open projects in the workspace. By default, the view displays in real time which tests are affected by your current code modifications – every time you make a code change that impacts a test, the view is refreshed to display that test. To switch off automatic detection of affected tests, disable the Auto-detect impacted tests option in the view's menu.
If the option is disabled, you need to manually refresh the view by clicking the Refresh button.
You can right-click a detected test and choose Go to to view the test code in the editor:
In addition, the Impacted Unit Tests view displays:
To run all impacted tests that are displayed in the view, click the Run all tests button in the view's menu.
To run a subset of impacted tests, select the project, package, class, and/or method node(s) to analyze and click Run selected in the view menu.
If tests fail when run from the Impacted Tests view, you can run and diagnose a single test. To do that right-click the test, and choose Run with Unit Test Assistant.
To stop the test execution, click the Stop button in the view's menu.
Note: Non-public JUnit 5 test classes from a package other than the default package cannot be run in the Impacted Unit Tests view. They are shown in the view as unavailable.
The Live unit testing button in the view's menu enables the continuous execution of all impacted tests and automatic collection of coverage data for them in the background. The tests will run each time the impacted tests tree is updated in the view (either when the Auto-detect impacted tests option is enabled or when the view is refreshed using the Refresh button).
The test status displayed in the view will be automatically updated after the tests are run.
To collect coverage for the Coverage view, select the Collect coverage option from the menu. This will enable the Coverage view to provide coverage data to the Impacted Unit Tests view, where it is used to correlate tests with the covered code.
If tests fail when run from the Impacted Tests view, their results and error stack traces will be displayed in the Findings and Findings Details views for analysis.
A list of findings is displayed in the Findings view.
The details of a single finding can be displayed in the Finding Details view.
To specify the scope of Git commits used to collect impacted tests, click the Configure link, and configure the settings in the Impacted test settings dialog.
Note: