使用MATLAB单元测试插件生成工件
单元测试框架允许您使用插件类自定义测试运行程序matlab.unittest.plugins
包中。您可以使用这些插件类中的一些来生成与持续集成(CI)平台兼容的测试报告和工件:
matlab.unittest.plugins.TestReportPlugin
创建一个插件,该插件指示测试运行器生成测试结果报告。使用这个插件,您可以生成可读且可归档的测试报告。matlab.unittest.plugins.TAPPlugin
创建一个插件,生成一个测试任何协议(TAP)流。matlab.unittest.plugins.XMLPlugin
创建一个产生junit风格XML输出的插件。matlab.unittest.plugins.CodeCoveragePlugin
创建一个插件,为MATLAB源代码生成覆盖率报告。
在运行Simulink®Test™测试用例时,还可以生成与ci兼容的工件。万博1manbetx有关更多信息,请参见连续集成系统的输出结果(万博1manbetx仿真软件测试)。
使用自定义测试运行程序运行测试
这个例子展示了如何创建一个测试套件并自定义测试运行程序,以报告测试运行进度并生成与ci兼容的工件。
在当前文件夹中的一个文件中,创建函数quadraticSolver
,返回二次多项式的根。
函数根= quadraticSolver(a,b,c)函数的解返回万博 尤文图斯%二次方程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)结束函数imaginarySolution(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”);
创建一个TestRunner
属性生成输出的实例matlab.unittest.TestRunner.withTextOutput
方法。此方法使您能够设置记录诊断的最大详细级别和测试事件详细信息的显示级别。在此示例中,测试运行程序在matlab.unittest.Verbosity.Detailed
级别(三级)。
进口matlab.unittest.TestRunner运行器= testrrunner . withtextoutput (“OutputDetail”3);
创建一个TestReportPlugin
实例,它向文件发送输出testreport.pdf
并将插件添加到测试运行程序。
进口matlab.unittest.plugins.TestReportPluginpdfFile =“testreport.pdf”;p1 = TestReportPlugin.producingPDF(pdfFile);runner.addPlugin (p1)
创建一个XMLPlugin
实例,该实例将junit样式的XML输出写入文件junittestresults.xml
。然后,将插件添加到测试运行程序。
进口matlab.unittest.plugins.XMLPluginxmlFile =“junittestresults.xml”;p2 = XMLPlugin.producingJUnitFormat(xmlFile);runner.addPlugin (p2)
创建一个插件,输出文件中源代码的Cobertura代码覆盖率报告quadraticSolver.m
。指示插件将其输出写入文件cobertura.xml
并将插件添加到测试运行程序。
进口matlab.unittest.plugins.CodeCoveragePlugin进口matlab.unittest.plugins.codecoverage.CoberturaFormatsourceCodeFile =“quadraticSolver.m”;reportFile =“cobertura.xml”;reportFormat = CoberturaFormat(reportFile);p3 = CodeCoveragePlugin.forFile(sourceCodeFile,“生产”, reportFormat);runner.addPlugin (p3)
运行测试。
Results = run .run(suite)
运行SolverTest设置SolverTest完成设置SolverTest在0秒内运行SolverTest/realSolution完成SolverTest/realSolution在0.0074445秒内运行SolverTest/imaginarySolution完成SolverTest/imaginarySolution在0.0040311秒内运行SolverTest/nonnumericInput完成SolverTest/nonnumericInput在0.014596秒内拆除SolverTest完成拆除SolverTest在0秒内完成SolverTest在0.026071秒内完成SolverTest __________生成测试报告。请稍等。准备测试报告内容。向测试报告中添加内容。编写测试报告。测试报告已保存到:C:\work\testreport.pdf results = 1×3 TestResult数组,属性:名称通过失败不完整持续时间详细信息总计:3通过,0失败,0不完整。0.026071秒测试时间。
列出当前文件夹中的文件。三个指定的工件存储在当前文件夹中。
dir
, . .GenerateArtifactsUsingMATLABUnitTestPluginsExample。m SolverTest。m cobertura.xml文档html junittestresults.xml元数据quadraticSolver。m testreport.pdf
您可以在CI平台上处理生成的工件。您还可以查看生成的工件的内容。例如,打开PDF格式的测试报告。
打开(“testreport.pdf”)
另请参阅
matlab.unittest.TestRunner
|matlab.unittest.plugins包
|matlab.unittest.plugins.TAPPlugin
|matlab.unittest.plugins.XMLPlugin
|matlab.unittest.plugins.CodeCoveragePlugin
|matlab.unittest.plugins.TestReportPlugin
相关的话题
- 使用持续集成开发和集成软件
- CI平台上MATLAB的持续集成
- 连续集成系统的输出结果(万博1manbetx仿真软件测试)