matlab.coverage.Result.resetFilter - Remove filters from coverage results - MATLAB (original) (raw)

Create a justification to filter a block of code that must be covered by a method other than automated testing, for instance, by interactive testing. Then, use the justification to create new coverage results.

First, open this example to access the required files.

openExample("matlabtest/UpdateCoverageResultsUsingJustificationsExample")

When you open the example, these files appear in your current folder:

Run the collectCoverage script to collect code coverage information and produce an interactive code coverage report. Because the test does not achieve a decision outcome in the source code, the code coverage report includes a missed statement and a missed decision outcome.

Running LoggingTest . Done LoggingTest


result = Result with properties:

    Filename: "C:\work\logToFile.m"
CreationDate: 25-Nov-2024 15:37:23
      Filter: [0×0 matlabtest.coverage.Justification]

Coverage summary (HTML report): Function: 1/1 (100%) Statement: 5/6 (83.33%) Decision: 1/2 (50%)

Use coverageSummary to retrieve information from the coverage results.

Show all accessible properties of Result

Justify the missing code coverage by following these steps:

  1. With Decision selected from the Currently viewing list on the code coverage report, click the if fileID < 0 branching statement in the Source Details section.
  2. In the dialog box that appears, enter a reason for the justification and then click OK.
  3. Using your system file browser, save the justification to an XML file named myFilter.xml in your current folder.

Create Coverage Justification dialog box, with the reason entered as "Requires interactive testing"

After saving the justification, you can use the applyFilter and resetFilter methods to create new coverage results. For example, this code creates a coverage result that incorporates the justified outcomes and then generates an interactive code coverage report from the new result.

result1 = result.applyFilter("myFilter.xml") generateHTMLReport(result1)

This code creates another coverage result by removing the justification applied to result1.

result2 = result1.resetFilter