主要内容

matlab.unittest.plugins.CodeCoveragePlugin类

包:matlab.unittest.plugins

生成代码覆盖率报告的插件

描述

为MATLAB生成一个代码覆盖率报告®源代码的实例matlab.unittest.plugins.CodeCoveragePlugin类传递给测试运行程序。当测试套件运行时,插件生成一个报告,其中显示测试执行的源代码部分。

matlab.unittest.plugins.CodeCoveragePlugin类是一个处理类。

创建

创建一个CodeCoveragePlugin实例使用它的静态方法之一:

  • 要创建为文件中的源代码生成代码覆盖率报告的插件,请使用forFile静态方法。

  • 要创建为文件夹中的源代码生成代码覆盖率报告的插件,请使用forFolder静态方法。

  • 要创建为包中的源代码生成代码覆盖率报告的插件,请使用forPackage静态方法。

方法

全部展开

例子

全部折叠

运行一套测试,并为源代码生成HTML格式的代码覆盖率报告。

在一个名为sourceFolder在当前文件夹中,创建quadraticSolver函数。该函数以一个二次多项式的系数作为输入,并返回该多项式的根。如果系数指定为非数值,则函数抛出错误。

函数根= quadraticSolver (a, b, c)% quadraticSolver返回解二次方程a*x^2 + b*x + c = 0。如果~ isa (,“数字”isa (b) | | ~“数字”) | | ~ isa (c,“数字”)错误(“quadraticSolver: InputMustBeNumeric”...“系数必须是数字。”结束√(1)= (-b +√(b^2 - 4*a*c)) / (2*a);√(2)= (-b -√(b^2 - 4*a*c)) / (2*a);结束

测试quadraticSolver函数,创建SolverTest类中的testsFolder在您的当前文件夹中。定义三个测试针对实解、虚解和非数值输入测试函数的方法。

classdefSolverTest < matlab.unittest.TestCase方法(测试)函数realSolution(testCase) actSolution = quadraticSolver(1,3,2);expSolution = [2 1];testCase.verifyEqual (actSolution expSolution)结束函数imaginysolution (testCase) actSolution = quadraticSolver(1,2,10);expSolution = [-1+3i -1-3i];testCase.verifyEqual (actSolution expSolution)结束函数nonnumericInput (testCase) testCase.verifyError (@ () quadraticSolver (1,“3”2),...“quadraticSolver: InputMustBeNumeric”结束结束结束

要运行测试并生成代码覆盖率报告,请先添加sourceFolder的路径。

目录“sourceFolder”

创建测试套件testsFolder

套件= testsuite (“testsFolder”);

创建一个测试运行器,并使用一个插件对其进行定制,该插件为其中的代码生成HTML代码覆盖率报告sourceFolder.指示插件将其输出写入一个名为coverageReport在您的当前文件夹中。

进口matlab.unittest.plugins.CodeCoveragePlugin进口matlab.unittest.plugins.codecoverage.CoverageReport跑步者= testrunner (“textoutput”);sourceCodeFolder =“sourceFolder”;reportFolder =“coverageReport”;reportFormat = CoverageReport (reportFolder);p = CodeCoveragePlugin.forFolder (sourceCodeFolder“生产”, reportFormat);runner.addPlugin (p)

运行测试。在本例中,所有测试都通过了,源代码得到了全面的覆盖。该插件在指定的文件夹中生成一个HTML代码覆盖率报告coverageReport,在当前文件夹中创建。默认情况下,报表的主文件为index . html

结果= runner.run(套);
运行SolverTest……完成SolverTest __________代码覆盖率报告已保存到:C:\work\coverageReport\index.html

打开报告的主文件。

打开(fullfile (“coverageReport”“index . html”))

运行一套测试,并为源代码生成Cobertura XML格式的代码覆盖率报告。

在当前文件夹中的文件中,创建quadraticSolver函数。该函数以一个二次多项式的系数作为输入,并返回该多项式的根。如果系数指定为非数值,则函数抛出错误。

函数根= quadraticSolver (a, b, c)% quadraticSolver返回解二次方程a*x^2 + b*x + c = 0。如果~ isa (,“数字”isa (b) | | ~“数字”) | | ~ isa (c,“数字”)错误(“quadraticSolver: InputMustBeNumeric”...“系数必须是数字。”结束√(1)= (-b +√(b^2 - 4*a*c)) / (2*a);√(2)= (-b -√(b^2 - 4*a*c)) / (2*a);结束

测试quadraticSolver函数,创建SolverTest类。定义三个测试针对实解、虚解和非数值输入测试函数的方法。

classdefSolverTest < matlab.unittest.TestCase方法(测试)函数realSolution(testCase) actSolution = quadraticSolver(1,3,2);expSolution = [2 1];testCase.verifyEqual (actSolution expSolution)结束函数imaginysolution (testCase) actSolution = quadraticSolver(1,2,10);expSolution = [-1+3i -1-3i];testCase.verifyEqual (actSolution expSolution)结束函数nonnumericInput (testCase) testCase.verifyError (@ () quadraticSolver (1,“3”2),...“quadraticSolver: InputMustBeNumeric”结束结束结束

创建一个测试套件SolverTest类。

套件= testsuite (“SolverTest”);

创建一个测试运行器,并使用插件对其进行定制,该插件为文件中的源代码生成Cobertura XML代码覆盖率报告quadraticSolver.m.指示插件将其输出写入一个名为coverageReport.xml在您的当前文件夹中。

进口matlab.unittest.plugins.CodeCoveragePlugin进口matlab.unittest.plugins.codecoverage.CoberturaFormat跑步者= testrunner (“textoutput”);sourceCodeFile =“quadraticSolver.m”;reportFile =“coverageReport.xml”;reportFormat = CoberturaFormat (reportFile);p = CodeCoveragePlugin.forFile (sourceCodeFile“生产”, reportFormat);runner.addPlugin (p)

运行测试。在本例中,所有测试都通过了,源代码得到了全面的覆盖。该插件在当前文件夹中生成Cobertura XML代码覆盖率报告。

结果= runner.run(套);
运行SolverTest……完成SolverTest  __________

您可以在持续集成(CI)平台上处理生成的代码覆盖率报告。还可以使用以下命令查看其内容打开(reportFile)disp (fileread (reportFile))

更多关于

全部展开

版本历史

介绍了R2014b

全部展开

Baidu
map