Main Content

sltest.plugins.coverage.ModelCoverageReport class

Package: sltest.plugins.coverage
Superclasses: matlab.mixin.Heterogeneous

Specify model coverage report details for tests run with MATLAB Unit Test

Description

Use the sltest.plugins.coverage.ModelCoverageReport class to specify coverage report details and file location for tests run with the MATLAB® Unit Test framework. If you have a license for Parallel Computing Toolbox™, you can use the ModelCoverageReport with parallel test execution.

The sltest.plugins.coverage.ModelCoverageReport class is a handle class.

Class Attributes

HandleCompatible
true

For information on class attributes, see Class Attributes.

Creation

mcr = sltest.plugins.coverage.ModelCoverageReport(path) creates a model coverage report created after the test runs. The input path specifies where the report is saved.

You can also import the plugin, then use the class name to create the object:

import sltest.plugins.coverage.ModelCoverageReport
mcr = ModelCoverageReport(path)

Use ModelCoveragePlugin to specify report properties before you run the test:

  1. Create a ModelCoverageReport.

  2. Create a ModelCoveragePlugin, and specify the ModelCoverageReport by using the Producing property.

  3. Add the ModelCoveragePlugin to the TestRunner.

  4. Run the test.

Examples

collapse all

This example shows how to specify model coverage report properties when running a Simulink® Test™ test file with MATLAB® Unit Test.

To run the example, set the current folder to a writable folder.

1. Import classes for the example.

import matlab.unittest.TestSuite
import matlab.unittest.TestRunner
import sltest.plugins.ModelCoveragePlugin
import sltest.plugins.coverage.ModelCoverageReport

2. Create a test suite and test runner.

Create a MATLAB Unit Test suite from AutopilotTestFile. Also create a test runner.

ste = testsuite('AutopilotTestFile.mldatx');
trn = TestRunner.withNoPlugins;

3. Specify the report location.

Create a subfolder in the current folder, and create a ModelCoverageReport object specifying the new folder.

mkdir('./exReports/coverage');
path = './exReports/coverage';
mcr = ModelCoverageReport(path)
mcr = 
  ModelCoverageReport with no properties.

4. Create a Model Coverage Plugin.

Use the Producing property to specify the ModelCoverageReport when creating the plugin.

mc = ModelCoveragePlugin('Producing',mcr)
mc = 
  ModelCoveragePlugin with properties:

    RecordModelReferenceCoverage: '<default>'
                 MetricsSettings: '<default>'

5. Add the coverage plugin to the test runner, and run the test.

addPlugin(trn,mc);

% Turn off the command line warnings.
warning off Stateflow:cdr:VerifyDangerousComparison
warning off Stateflow:Runtime:TestVerificationFailed

run(trn,ste)
Coverage Report for RollAutopilotMdlRef/Roll Reference
    ./exReports/coverage/tpbc0347d1_8cb3_4db3_a2e6_47cc830412a8.html
ans = 
  TestResult with properties:

          Name: 'AutopilotTestFile > Basic Design Test Cases/Requirement 1.3 Test'
        Passed: 0
        Failed: 1
    Incomplete: 0
      Duration: 13.3215
       Details: [1x1 struct]

Totals:
   0 Passed, 1 Failed, 0 Incomplete.
   13.3215 seconds testing time.

Cleanup. Remove temporary folder and clear variables. Enable warnings.

warning on Stateflow:cdr:VerifyDangerousComparison
warning on Stateflow:Runtime:TestVerificationFailed

rmdir('./exReports','s');
clear('ste','trn','fldr','path','mcr','mc');
Introduced in R2018b