matlab.unittest.plugins.

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

Создайте CodeCoveragePlugin для папок

Синтаксис

matlab.unittest.plugins.CodeCoveragePlugin.forFolder(folder)
matlab.unittest.plugins.CodeCoveragePlugin.forFolder(folder,Name,Value)

Описание

пример

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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

Типы данных: логический

Формат отчета, заданный или как экземпляр 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 (подпапка +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 создает Отчет Покрытия кода для квадратичной функции решателя во временной папке.

Вложенная функция checkinputs не имеет полного покрытия кода. Поскольку тесты в SolverTest.m не передают нечисловой вход quadraticSolver, MATLAB не осуществляет код, который выдает ошибку, если входные параметры не являются числовыми. Чтобы обратиться к недостающему покрытию, добавьте метод тестирования протестировать состояние ошибки.

Введенный в R2014b