matlab.unittest.plugins. CodeCoveragePlugin.forFolder

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

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

Синтаксис

(Папка) matlab.unittest.plugins. CodeCoveragePlugin.forFolder
matlab.unittest.plugins. CodeCoveragePlugin.forFolder (папка, Имя, Значение)

Описание

пример

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

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

Входные параметры

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

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

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

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

Пример: pwd

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Имя должно появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

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

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

Примеры

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

В новом файле 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

Была ли эта тема полезной?