当您使用MATLAB编写测试时®单元测试框架,可以创建一个独立的应用程序(需要MATLAB编译器™)在未安装MATLAB的目标计算机上运行测试:
要编译MATLAB代码,请运行compiler.build.standaloneApplication
(MATLAB编译器)或mcc
(MATLAB编译器)命令,或使用应用程序编译器(MATLAB编译器)应用程序。
要运行独立应用程序,请安装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)));结束
mcc
(MATLAB编译器)|运行(TestRunner)
|运行(测试套件)
|运行测试
|并行运行
|compiler.build.standaloneApplication
(MATLAB编译器)