Класс: matlab.unittest.plugins. CodeCoveragePlugin
Пакет: matlab.unittest.plugins
Создайте CodeCoveragePlugin
для файлов
matlab.unittest.plugins. CodeCoveragePlugin.forFile (файл, 'Создание', reportFormat)
matlab.unittest.plugins. CodeCoveragePlugin.forFile (
создает плагин, который представляет отчет покрытия кода для одного или несколькихфайл
, 'Создание', reportFormat
).m
или .mlx
файлов.
file
— Имя файлов, чтобы анализироватьИмя файлов, чтобы анализировать, заданный как вектор символа, массив ячеек из символьных векторов, представляет в виде строки скаляр или массив строк. file
является абсолютным или относительным путем одному или нескольким файлы .mlx
или .m
.
Пример: '../thisTest. m
Пример: {'Test_featureB.m', 'Test_featureA.m'}
Типы данных: char | string
reportFormat
— Формат отчетаmatlab.unittest.plugins.codecoverage.CoberturaFormat
classФормат отчета, заданный как экземпляр matlab.unittest.plugins.codecoverage.CoberturaFormat
class.
('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
Создайте тестовый класс для квадратичного решателя в ForFileSolverTest.m
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:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.