exponenta event banner

matlab.unittest.plugins. CodeCoveragePlugin.forFolder

Класс: matlab.unittest.plugins.CodecoCovereyPlugin
Пакет: matlab.unittest.plugins

Конструкция CodeCoveragePlugin для папок

Описание

пример

matlab.unittest.plugins.CodeCoveragePlugin.forFolder(folder) создает подключаемый модуль, который создает отчет о покрытии кода для одной или нескольких папок. Плагин сообщает об исходном коде внутри folder.

matlab.unittest.plugins.CodeCoveragePlugin.forFolder(folder,Name,Value) создает отчет о покрытии кода с дополнительными опциями, указанными одним или несколькими Name,Value аргументы пары. Например, matlab.unittest.plugins.CodeCoveragePlugin.forFolder(pwd,'IncludingSubfolders',true) создает отчет о покрытии кода для исходного кода в текущей папке и ее подпапках.

Входные аргументы

развернуть все

Расположение папки, содержащей исходный код, указанный как символьный вектор, массив ячеек символьных векторов или строковый массив. folder - абсолютный или относительный путь к одной или нескольким папкам. При указании нескольких папок MATLAB ® открывает отчет об покрытии профиля для каждой папки.

Папки исходного кода должны находиться в пути MATLAB и оставаться в пути во время тестового запуска.

Пример: 'C:\projects\myproj'

Пример: pwd

Пример: {'C:\projects\myprojA','myprojB'}

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: matlab.unittest.plugins.CodeCoveragePlugin.forFolder(pwd,'IncludingSubfolders',true) создает отчет о покрытии кода для исходного кода в текущей папке и ее подпапках.

Установка включения исходного кода во вложенные папки folder, указанный false или true. По умолчанию CodeCoveragePlugin не сообщает об исходном коде во вложенных папках.

Типы данных: logical

Формат отчета, указанный как matlab.unittest.plugins.codecoverage.CoverageReport экземпляр или экземпляр другого класса в matlab.unittest.plugins.codecoverage пакет. По умолчанию формат отчета - matlab.unittest.plugins.codecoverage.CoverageReport, который отображает отчет по покрытию кода MATLAB.

Пример: matlab.unittest.plugins.codecoverage.CoberturaFormat('CoverageResults.xml')

Примеры

развернуть все

В новом файле quadraticSolver.m, в рабочей папке создайте следующую функцию.

function roots = quadraticSolver(a,b,c)
% quadraticSolver returns solutions to the
% quadratic equation a*x^2 + b*x + c = 0.

checkInputs

roots(1) = (-b + sqrt(b^2 - 4*a*c)) / (2*a);
roots(2) = (-b - sqrt(b^2 - 4*a*c)) / (2*a);

    function checkInputs
        if ~isa(a,'numeric') || ~isa(b,'numeric') || ~isa(c,'numeric')
            error('quadraticSolver:InputMustBeNumeric', ...
                'Coefficients must be numeric.')
        end
    end
end

Создайте тест для квадратичного решателя. В tests пакет (a +tests подпапка), создать SolverTest.m содержит следующий класс теста.

classdef SolverTest < matlab.unittest.TestCase
    % SolverTest tests solutions to the quadratic equation
    % a*x^2 + b*x + c = 0
    
    methods (Test)
        function testRealSolution(testCase)
            actSolution = quadraticSolver(1,-3,2);
            expSolution = [2,1];
            testCase.verifyEqual(actSolution,expSolution)
        end
        function testImaginarySolution(testCase)
            actSolution = quadraticSolver(1,2,10);
            expSolution = [-1+3i, -1-3i];
            testCase.verifyEqual(actSolution,expSolution)
        end
    end
    
end

В командной строке из исходной рабочей папки создайте набор тестов из tests пакет.

import matlab.unittest.TestSuite
import matlab.unittest.TestRunner
import matlab.unittest.plugins.CodeCoveragePlugin

suite = TestSuite.fromPackage('tests');

Создайте тестовый питатель.

runner = TestRunner.withTextOutput;

Добавить CodeCoveragePlugin к питателю и запустите тесты. Укажите, что папка исходного кода является текущей рабочей папкой. Если в текущей рабочей папке имеются другие файлы исходного кода, они отображаются в отчете о покрытии. Папка, содержащая исходный код (quadraticSolver.m) должен находиться в пути поиска MATLAB.

runner.addPlugin(CodeCoveragePlugin.forFolder(pwd))
result = runner.run(suite);
Running tests.SolverTest
..
Done tests.SolverTest
__________

MATLAB создает отчет об покрытии кода для функции квадратичного решателя во временной папке.

Code coverage report for quadraticSolver

checkinputs вложенная функция не имеет полного покрытия кода. С момента проведения тестов в SolverTest.m не передавать нечисловой ввод в quadraticSolverMATLAB не использует код, который выдает ошибку, если входные данные не являются числовыми. Для устранения недостающей зоны покрытия добавьте метод тестирования для проверки состояния ошибки.

Представлен в R2014b