Класс: matlab.unittest.plugins.
Пакет: matlab.unittest.plugins
Создайте CodeCoveragePlugin для файлов
matlab.unittest.plugins.CodeCoveragePlugin.forFile(file,'Producing',reportFormat)matlab.unittest.plugins.CodeCoveragePlugin.forFile( создает плагин, который представляет отчет покрытия кода для одного или нескольких файлы file,'Producing',reportFormat).mlx или .m.
file — Имя файлов, чтобы анализироватьИмя файлов, чтобы анализировать, заданный как вектор символов, массив ячеек из символьных векторов, представляет в виде строки скаляр или массив строк. file является абсолютным или относительным путем одному или нескольким файлы .mlx или .m.
Пример: '../thisTest.m'
Пример: {'Test_featureB.m','Test_featureA.m'}
Типы данных: char | string
reportFormat — Формат отчетаФормат отчета, заданный как экземпляр matlab.unittest.plugins.codecoverage.CoverageReport или класса matlab.unittest.plugins.codecoverage.CoberturaFormat.
Пример: 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
Создайте тестовый класс для квадратичного решателя в ForFileSolverTest.m.
classdef ForFileSolverTest < 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
В командной строке создайте тестовый набор для ForFileSolverTest.m и создайте исполнителя тестов.
import matlab.unittest.TestRunner testFile = 'ForFileSolverTest.m'; suite = testsuite(testFile); runner = TestRunner.withTextOutput;
Создайте плагин, который выводит отчет покрытия кода для исходного кода в формате Cobertura.
import matlab.unittest.plugins.CodeCoveragePlugin import matlab.unittest.plugins.codecoverage.CoberturaFormat sourceCodeFile = 'quadraticSolver.m'; reportFile = 'CoverageResults.xml'; reportFormat = CoberturaFormat(reportFile); plugin = CodeCoveragePlugin.forFile(sourceCodeFile,'Producing',reportFormat);
Добавьте плагин в исполнителя тестов и запустите тесты.
runner.addPlugin(plugin); result = runner.run(suite);
Running ForFileSolverTest .. Done ForFileSolverTest __________
Отобразите содержимое файла с результатами покрытия кода.
disp(fileread(reportFile))
<?xml version="1.0" encoding="utf-8"?>
<coverage branch-rate="NaN" branches-covered="NaN" branches-valid="NaN" complexity="NaN" line-rate="0.8" lines-covered="4" lines-valid="5" timestamp="737000.4343" version="NaN">
<sources>
<source>C:\work\</source>
</sources>
<packages>
<package branch-rate="NaN" complexity="NaN" line-rate="0.8" name="">
<classes>
<class branch-rate="NaN" complexity="NaN" filename="quadraticSolver.m" line-rate="0.8" name="quadraticSolver">
<methods/>
<lines>
<line branch="NaN" condition-coverage="NaN" hits="2" number="4"/>
<line branch="NaN" condition-coverage="NaN" hits="2" number="5"/>
<line branch="NaN" condition-coverage="NaN" hits="2" number="6"/>
<line branch="NaN" condition-coverage="NaN" hits="2" number="9"/>
<line branch="NaN" condition-coverage="NaN" hits="0" number="10"/>
</lines>
</class>
</classes>
</package>
</packages>
</coverage>matlab.unittest.plugins.CodeCoveragePlugin.forFolder | matlab.unittest.plugins.CodeCoveragePlugin.forPackage | matlab.unittest.plugins.codecoverage.CoberturaFormat | matlab.unittest.plugins.codecoverage.CoverageReport
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.