coverageSummary
Class: matlab.coverage.Result
Namespace: matlab.coverage
Description
Input Arguments
Results of the code coverage analysis, specified as a
matlab.coverage.Result
vector.
Coverage type to retrieve information about, specified as one of the values in this table.
Value | Coverage Type |
---|---|
"statement" | Statement coverage |
"function" | Function coverage |
"decision" | Decision coverage |
"condition" | Condition coverage |
"mcdc" | Modified condition/decision coverage (MC/DC) |
Retrieving information about decision coverage, condition coverage, and modified condition/decision coverage (MC/DC) requires a MATLAB® Test™ license. For more information about coverage types, see Types of Code Coverage for MATLAB Source Code (MATLAB Test).
Data Types: char
| string
Output Arguments
Coverage summary, returned as an N-by-2 matrix, where
N is the length of results
. Each row in the
matrix corresponds to a coverage result. The first value in the row is the number of
executed outcomes for the specified coverage type, and the second value is the total
number of executable outcomes for that type.
Description of the code coverage analysis, returned as a 1-by-N
structure array, where N is the length of
results
. Each element of the array corresponds to a coverage
result. Use this argument to access detailed information about the code coverage
analysis. For example, you can access source code location information and an execution
count for each outcome within the code.
Examples
Run a suite of tests and collect the code coverage result. Then, retrieve information about statement coverage from the result.
In a file named quadraticSolver.m
in your current folder, create the quadraticSolver
function. The function takes as inputs the coefficients of a quadratic polynomial and returns the roots of that polynomial. If the coefficients are specified as nonnumeric values, the function throws an error.
function r = quadraticSolver(a,b,c) % quadraticSolver returns solutions to the % quadratic equation a*x^2 + b*x + c = 0. if ~isa(a,"numeric") || ~isa(b,"numeric") || ~isa(c,"numeric") error("quadraticSolver:InputMustBeNumeric", ... "Coefficients must be numeric.") end r(1) = (-b + sqrt(b^2 - 4*a*c)) / (2*a); r(2) = (-b - sqrt(b^2 - 4*a*c)) / (2*a); end
To test the quadraticSolver
function, create the SolverTest
class in a file named SolverTest.m
in your current folder. Define three Test
methods that test the function against real solutions, imaginary solutions, and nonnumeric inputs.
classdef SolverTest < matlab.unittest.TestCase methods (Test) function realSolution(testCase) actSolution = quadraticSolver(1,-3,2); expSolution = [2 1]; testCase.verifyEqual(actSolution,expSolution) end function imaginarySolution(testCase) actSolution = quadraticSolver(1,2,10); expSolution = [-1+3i -1-3i]; testCase.verifyEqual(actSolution,expSolution) end function nonnumericInput(testCase) testCase.verifyError(@()quadraticSolver(1,"-3",2), ... "quadraticSolver:InputMustBeNumeric") end end end
Import the classes used in this example.
import matlab.unittest.plugins.CodeCoveragePlugin import matlab.unittest.plugins.codecoverage.CoverageResult
Create a test suite from the SolverTest
class.
suite = testsuite("SolverTest");
Create a test runner and customize it using a plugin that provides programmatic access to the code coverage information for the source code in the file quadraticSolver.m
.
runner = testrunner("textoutput"); format = CoverageResult; p = CodeCoveragePlugin.forFile("quadraticSolver.m",Producing=format); runner.addPlugin(p)
Run the tests. After the test run, the Result
property of format
holds the coverage result. In this example, all the tests pass.
runner.run(suite);
Running SolverTest ... Done SolverTest __________
Access the statement coverage summary. The returned vector indicates that all four statements in the source code were executed by the tests.
result = format.Result;
summary = coverageSummary(result,"statement")
summary = 1×2
4 4
Use the description of the code coverage analysis to retrieve the execution count for each statement.
[~,description] = coverageSummary(result,"statement")
description = struct with fields:
statement: [1×4 struct]
disp([description.statement.ExecutionCount])
3 1 2 2
Version History
Introduced in R2023a
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)