主要内容

编写MATLAB单元测试

当您使用MATLAB编写测试时®单元测试框架,可以创建一个独立的应用程序(需要MATLAB编译器™)在未安装MATLAB的目标计算机上运行测试:

MATLAB编译器万博1manbetx仅支持基于类的单元测试。(您不能编译基于脚本或基于函数的单元测试。)此外,MATLAB编译器目前不支持使用性能测试框架编写的测试。万博1manbetx

使用独立应用程序运行测试

此示例演示如何从单元测试创建独立应用程序,并从终端窗口(在Microsoft上)运行生成的应用程序®窗户®平台)。

在一个名为TestRand.m在当前文件夹中,创建一个测试MATLAB随机数生成器的参数化测试类(请参见类定义摘要).

在当前文件夹中,创建运行我的测试函数。函数创建一个测试套件TestRand类,运行测试,并显示测试结果。

作用runMyTests套件= matlab.unittest.TestSuite.fromClass(? teststrand);跑步者= matlab.unittest.TestRunner.withNoPlugins;结果= runner.run(套);disp(结果)结束

编译运行我的测试函数在独立应用程序中运行mcc命令,在命令窗口。MATLAB编译器在当前文件夹中生成应用程序。

mcc-m运行我的测试

打开终端窗口,导航到打包独立应用程序的文件夹,并运行该应用程序。

C:\work>runMyTests 1x1200 TestResult array with properties: Name Passed Failed Incomplete Duration Details总计:1200 Passed, 0 Failed, 0 Incomplete. 3.11秒测试时间。

有关如何创建和运行独立应用程序的更多信息,请参见从MATLAB创建独立的应用程序(MATLAB编译器)

与独立应用程序并行运行测试

从R2020b开始,您可以创建支持并行运行测试的独立应用程序(需要并行计算工具箱™)。万博1manbetx这个特性需要你使用指令% #函数并行。池在触发测试运行的文件中。的% #函数(MATLAB编译器)编译指示通知MATLAB编译器那是平行的。池(并行计算工具箱)对象必须包含在编译中,以提供对并行池的访问。

例如,考虑文件中的测试TestRand.m.通过编译此函数,您可以创建一个独立的应用程序来并行运行这些测试。

作用运行mytestsinparallel% #函数并行。池结果= runtests (“TestRand.m”,“UseParallel”,真正的);disp(结果)结束

控件将函数编译为独立的应用程序mcc命令。指导MATLAB编译器要在应用程序中包含测试文件,请使用-a选项

mcc-m运行mytestsinparallel-aTestRand.m

类定义摘要

的完整内容TestRand类。

classdefTestRand < matlab.unittest.TestCase性质(TestParameter) dim1 = createdimensions;dim2 = createDimensionSizes;dim3 = createDimensionSizes;类型= {“单一”,“双”};结束方法(测试)作用teststrepeatable (testCase,dim1,dim2,dim3) state = rng;firstRun =兰德(dim1 dim2 dim3);rng(state) secondRun = rand(dim1,dim2,dim3); / /运行状态testCase.verifyEqual (firstRun secondRun);结束作用testClass(testCase,dim1,dim2,类型)testCase.verifyClass(rand(dim1,dim2,类型),类型)结束结束结束作用大小= createDimensionSizes%创建最大为100的对数间隔大小大小= num2cell(圆(logspace(0、2、10)));结束

另请参阅

(MATLAB编译器)|||||(MATLAB编译器)

相关话题