运行一组测试
创建一个文件夹myExample
在当前工作文件夹中,并更改到该文件夹中。
在myExample
文件夹,创建一个测试脚本,typeTest.m
.
%%双级测试经验值=“双”;行动= 1;断言(isa(行动,经验值))%%测试单级经验值=“单一”;行动= (“单一”);断言(isa(行动,经验值))%% Test uint16 class经验值=“uint16”;行动= (“uint16”);断言(isa(行动,经验值))
在myExample
文件夹,创建一个测试脚本,sizeValueTest.m
.
% %测试尺寸Exp = [7 13];Act = ones([7 13]);断言(isequal(大小(act),经验值))% %测试值的行动= (42);断言(独特(act) = = 1)
运行当前文件夹中的所有测试。
runtests
运行sizeValueTest . .完成sizeevaluetest __________运行typeTest…Done typeTest __________ ans = 1x5 TestResult数组,属性为:Name Passed Failed Incomplete Duration Details总计:5 Passed, 0 Failed, 0 Incomplete. 0.038077 seconds testing time.测试时间。
MATLAB®运行了5次测试。有两项测试通过sizevaluetest.
还有3个通过了测试typeTest
.
创建如下所示的测试文件,并将其保存为runtestsexampletest.m.
在MATLAB路径上。
函数测试= runtestsExampleTest测试=函数测试(localfunctions);函数testFunctionOne (testCase)
运行测试。
结果= runtests ('runtestsexampletest.m');
runtestsExampleTest运行。完成runtestsExampleTest __________
如果不存在,请创建测试文件,runtestsexampletest.m.
在上面的例子中。
创建一个子文件夹,人体
,并且,在该文件夹中,创建以下内容runtestsExampleSubFolderTest.m
文件。
函数测试= runtestsExampleSubFolderTest测试=函数测试(localfunctions);函数testFunctionTwo (testCase)
从上面的文件夹运行测试人体
通过设置“IncludeSubfolders”
为true。
结果= runtests (pwd,“IncludeSubfolders”,真的);
runtestsExampleTest运行。完成RuntestSexampletest __________运行RuntestSexampleSubfoldert。完成Runtestsexamplesubfoldertest __________
runtests
在当前文件夹和子文件夹中运行测试。
如果不指定“IncludeSubfolders”
财产runtests
函数,则不会在子文件夹中运行测试。
结果= runtests (pwd);
runtestsExampleTest运行。完成runtestsExampleTest __________
将当前文件夹为项目根文件夹或将项目根文件夹的完整路径传递给runtests
函数,runtests
中标记的指定项目中包含的所有测试文件测试
分类。
本例假设项目文件夹位于C: /项目/ project1
包含用标记的测试文件测试
分类。将当前文件夹更改为项目根文件夹,并在项目中运行测试。
cd“C: /项目/ project1 /”runtests
或者,您也可以通过打开来运行测试project1
.完成后关闭项目。
项目= openProject (“C: /项目/ project1 /”);runtests close(proj)
作为另一种替代方案,通过将项目根文件夹传递到项目的完整路径来运行项目中的测试runtests
.
runtests (“C: /项目/ project1 /”)
创建以下测试文件,并将其保存为runInParallelTest.m
在你的MATLAB®路径。
函数tests = runInParallelTest测试= FunctionTess(LocalFunctions);函数外种皮(testCase) verifyEqual (testCase 5 5);函数的(testCase) verifyTrue (testCase、逻辑(1));函数testc(testcase)verifysubstring(testcase,“SomeLongText”,“长”);函数testD(testCase) verifySize(testCase,ones(2,5,3),[2 5 3]);函数证人(testCase) verifyGreaterThan (testCase 3 2);函数testF (testCase) verifyEmpty (testCase, {},单元格数组不是空的。);函数testG (testCase) verifyMatches (testCase,“一些文本”,“一些(Tt) ext”);
并行运行测试。并行运行测试需要并行计算工具箱™。测试框架可能会改变组的顺序和数量,或者在每个组中包含哪些测试。
结果= runtests (“runInParallelTest”,“UseParallel”,真的);
将测试分成7组,在4个工人身上运行。---------------- 完成组2 ---------------- runInParallelTest运行。完成runInParallelTest __________ ---------------- 完成3组 ---------------- runInParallelTest运行。完成runInParallelTest __________ ---------------- 完成组1 ---------------- runInParallelTest运行。完成runInParallelTest __________ ---------------- 完成集团4 ---------------- runInParallelTest运行。完成runInParallelTest __________ ---------------- 完成集团6 ---------------- runInParallelTest运行。完成runInParallelTest __________ ---------------- 完成集团5 ---------------- runInParallelTest运行。完成runInParallelTest __________ ---------------- 完成集团7 ---------------- runInParallelTest运行。完成runInParallelTest __________
在您的工作文件夹中,创建testZeros.m
.这个类包含四个测试方法。
Classdef.testZeros < matlab.unittest.TestCase属性(TestParameter) type = {“单一”,“双”,“uint16”};巨大的=结构(“s2d”3 [3],“s3d”, (2 5 4));结束方法(测试)函数testCase. verifyclass (0 (outSize,type), type);结束函数testsize(testcase,outsize)testcase.verifysize(零(undsize),undsize);结束函数testDefaultClass (testCase) testCase.verifyClass (0,“双”);结束函数testdefaultsize(testcase)testcase.verifysize(零,[1 1]);结束函数testDefaultValue (testCase) testCase.verifyEqual (0, 0);结束结束结束
完整的测试套件有11个测试元素:6个来自testClass
方法,2从testSize
方法,各取1testDefaultClass
,testDefaultSize
,testDefaultValue
方法。
在命令提示符处,运行testSize
方法。
runtests ('testzeros / testsize')
运行testZeros . .已完成testZeros __________ ans = 1x2具有属性的TestResult数组:Name Passed Failed Incomplete Duration Details总计:2 Passed, 0 Failed, 0 Incomplete. 0.053333 seconds测试时间。
的runtests
函数执行的两个参数化测试testSize
方法。或者,您可以指定测试过程名称runtests(“testZeros”、“ProcedureName”、“testSize”)
.
的测试元素超出
参数属性。
runtests (“testZeros”,“ParameterProperty”,'outsize')
运行testZeros……已完成testZeros __________ ans = 1x8带有属性的TestResult数组:Name Passed Failed Incomplete Duration Details总计:8 Passed, 0 Failed, 0 Incomplete. 0.062038秒测试时间。
的runtests
函数执行了八个测试使用超出
参数属性:六个来自testClass
方法二testSize
方法。
的测试元素单身的
参数名称。
runtests (“testZeros”,“ParameterName”,“单一”)
运行testZeros . .已完成testZeros __________ ans = 1x2具有属性的TestResult数组:Name Passed Failed Incomplete Duration Details总计:2 Passed, 0 Failed, 0 Incomplete. 0.014171 seconds testing time。
的runtests
功能执行了两个测试testClass
使用方法超出
参数名称。
测试
- - - - - -一系列测试指定为字符串数组、字符向量或字符向量的单元格数组的一组测试。单元格数组中的每个字符向量可以包含测试文件的名称、测试类、测试套件元素名称、包含测试类的包、包含测试文件的文件夹或包含测试文件的项目文件夹。
例子:runtests('atestfile.m')
例子:runtests(“ATestFile / aTest”)
例子:runtests(“mypackage.MyTestClass”)
例子:runtests (pwd)
例子:runtests({'mypackage.mytestclass','atestfile.m',pwd,'mypackage.subpackage'})
例子:runtests (C: /项目/ project1 /)
指定可选的逗号分隔的对名称,值
参数。名称
参数名和价值
为对应值。名称
必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
runtests(测试,“名字”,“productA_ *”)
运行名称以。开头的测试元素“productA_”
.
“BaseFolder”
- - - - - -基本文件夹名称包含定义作为字符串数组,字符向量或字符向量的字符串数组,字符向量或单元数组的文件的文件的名称。这个论点过滤器TestSuite
数组元素。要让测试框架在套件中包含一个测试,则测试
元素必须包含在指定的基文件夹中BaseFolder
.如果没有测试
元素匹配一个基本文件夹,则返回一个空的测试套件。使用通配符*
匹配任意数量的字符。使用问号字符?
匹配单个字符。对于包中定义的测试文件,基本文件夹是顶级包文件夹的父文件夹。
“调试”
- - - - - -用于应用调试功能的指示器假
(默认)|真正的
|0
|1
指示器在运行时应用调试能力测试
,指定为假
或真正的
(0
或1
).例如,如果遇到测试失败,框架会暂停测试执行以进入调试模式。
“IncludeSubfolders”
- - - - - -在子文件夹中运行测试的指示符假
(默认)|真正的
|0
|1
用于在子文件夹中运行测试的指示符,指定为假
或真正的
(0
或1
).默认情况下,框架运行指定文件夹中的测试,但不在其子文件夹中运行。
'upplyub包'
- - - - - -指示符以在子包中运行测试假
(默认)|真正的
|0
|1
在子包中运行测试的指示符,指定为假
或真正的
(0
或1
).默认情况下,框架在指定的包中运行测试,而不是在它们的子包中。
“IncludeReferencedProjects”
- - - - - -指示符,以包括来自引用项目的测试假
(默认)|真正的
|0
|1
指示符,用于包括来自按逻辑指定的引用项目的测试假
或真正的
.有关引用项目的更多信息,请参阅组件化大型项目.
'logginglevel'
- - - - - -日志诊断的最大详细级别matlab.unittest.Verbosity
枚举用于测试运行的记录诊断的最大冗长级别,指定为0到4的整数值,或者作为一个matlab.unittest.Verbosity
枚举对象。的runtests
函数包括在此级别及以下记录的诊断。对象的成员对应于整数值matlab.unittest.Verbosity
枚举。
默认情况下runtests
包含记录在matlab.unittest.Verbosity.Terse
要排除记录的诊断信息,请指定LoggingLevel
作为冗长
(0级)。
日志诊断是通过调用日志(TestCase)
或日志(夹具)
方法。
数字表示 | 枚举成员名称 | 冗长的描述 |
---|---|---|
0 |
没有一个 |
无信息 |
1 |
结束 |
最小的信息 |
2 |
简洁的 |
适度的信息量 |
3. |
详细的 |
一些补充信息 |
4 |
详细的 |
大量补充信息 |
“OutputDetail”
- - - - - -显示事件详细信息的级别matlab.unittest.Verbosity
枚举显示事件详细信息的级别,指定为从0到4的整数值,或作为matlab.unittest.Verbosity
枚举对象。对象的成员对应于整数值matlab.unittest.Verbosity
枚举。
的runtests
功能显示失败和记录的事件,其中包含指定的详细信息OutputDetail
.默认情况下,runtests
显示失败和记录的事件matlab.unittest.Verbosity.Detailed
级别(级别3)和测试运行进度matlab.unittest.Verbosity.Concise
水平(2级)。
数字表示 | 枚举成员名称 | 冗长的描述 |
---|---|---|
0 |
没有一个 |
无信息 |
1 |
结束 |
最小的信息 |
2 |
简洁的 |
适度的信息量 |
3. |
详细的 |
一些补充信息 |
4 |
详细的 |
大量补充信息 |
“名字”
- - - - - -套房元素名称suite元素的名称,指定为字符串数组、字符向量或字符向量的单元格数组。这个论点过滤器TestSuite
数组元素。要让测试框架在套件中包含一个测试,则名称
财产的测试
元素必须与指定的名称之一匹配名称
.如果没有测试
元素具有匹配名称,返回一个空的测试套件。使用通配符*
匹配任意数量的字符。使用问号字符?
匹配单个字符。
“ParameterProperty”
- - - - - -参数化属性的名称测试类属性的名称,该属性定义测试套件元素使用的参数,指定为字符串数组、字符向量或字符向量的单元格数组。这个论点过滤器TestSuite
数组元素。要让测试框架在套件中包含一个测试,则参数化
财产的测试
元素必须至少包含由ParameterProperty
.如果没有测试
元素具有匹配的属性名,则返回一个空的测试套件。使用通配符*
匹配任意数量的字符。使用问号字符?
匹配单个字符。
“ParameterName”
- - - - - -参数的名称测试套件元素使用的参数名称,指定为字符串数组、字符向量或字符向量的单元数组。MATLAB基于定义参数的test类属性生成参数名:
如果属性值是字符向量的小区数组,则MATLAB从单元格数组中的值生成参数名称。否则,MATLAB指定参数名称为value1.
,value2
、……赋值
.
如果属性值是一个结构,MATLAB会从结构字段生成参数名。
的ParameterName
参数过滤器TestSuite
数组元素。要让测试框架在套件中包含一个测试,则参数化
财产的测试
元素必须包含至少一个指定的参数名称ParameterName
.如果没有测试
元素具有匹配的参数名,则返回一个空的测试套件。使用通配符*
匹配任意数量的字符。使用问号字符?
匹配单个字符。
“ProcedureName”
- - - - - -试验程序名称测试过程的名称,指定为字符串数组、字符向量或字符向量的单元格数组。这个论点过滤器TestSuite
数组元素。要让测试框架在套件中包含一个测试,则ProcedureName
财产的测试
元素必须与指定的过程名称匹配ProcedureName
.如果没有测试
元素具有匹配的过程名,则返回一个空的测试套件。使用通配符*
匹配任意数量的字符。使用问号字符?
匹配单个字符。
在基于类的测试中ProcedureName
是测试方法的名称。在基于函数的测试中,它是包含测试的本地函数的名称。在基于脚本的测试中,它是从测试部分标题生成的名称。不像名称
,测试过程的名称不包括任何类或包名称或有关参数化的信息。
“ReportCoverageFor”
- - - - - -要包含在代码覆盖报告中的源代码的路径要包含在代码覆盖报告中的源代码的路径,指定为字符串数组、字符向量或字符向量的单元格数组。使用以下选项runtests
运行指定的测试并为指定的代码文件生成代码覆盖率报告。报告显示测试在源代码中执行了哪些行。
源代码可以是一个或多个文件夹或文件的绝对或相对路径.m
,.mlx
, 要么.mlapp
扩展。
例子:runtests(测试,'eportcoveragefor','mysource.m')
数据类型:字符
|细绳
|细胞
'严格的'
- - - - - -对指标进行严格检查假
(默认)|真正的
|0
|1
运行时对指示灯进行严格检查测试
,指定为假
或真正的
(0
或1
).例如,如果测试发出警告,框架会生成一个限定失败。
“父类”
- - - - - -测试类派生的类的名称测试类派生的类的名称,指定为字符串数组、字符向量或字符向量的单元数组。这个论点过滤器TestSuite
数组元素。要让测试框架在套件中包含一个测试,则TestClass
财产的测试
元素必须指向从指定的类派生的测试类超类
.如果没有测试
元素匹配类,返回一个空的测试套件。
'标签'
- - - - - -测试元素标签的名称测试套件元素使用的测试标记的名称,指定为字符串数组、字符向量或字符向量的单元数组。这个论点过滤器TestSuite
数组元素。要让测试框架在套件中包含一个测试,则标签
财产的测试
元素必须至少包含一个由标签
.如果没有测试
元素具有匹配标记名称,返回一个空的测试套件。使用通配符*
匹配任意数量的字符。使用问号字符?
匹配单个字符。
“UseParallel”
- - - - - -并行运行测试的指示器假
(默认)|真正的
|0
|1
并行运行测试的指示符,指定为假
或真正的
(0
或1
).
默认情况下runtests
在串行运行测试。如果你设置了UseParallel
到真正的
,然后runtests
将测试套件分成不同的组,并在以下情况下并行运行:
已安装“并行计算工具箱”。
存在打开的并行池或在并行首选项中启用自动池创建。
否则,runtests
以串行方式运行测试,而不管其值为什么UseParallel
.
并行测试可能与其他选项不兼容。例如,测试在串行if中进行UseParallel
和调试
都被设置为真正的
.当并行运行时,测试框架可能会改变组的顺序和数量,或者在每个组中包含哪些测试。
“GenerateBaselines”
- - - - - -创建或更新基线数据的指标假
(默认)|真正的
|0
|1
用特定的确认方法创建或更新测试中使用的mat文件的指示符,指定为假
或真正的
(0
或1
) .你必须有金宝app®TEST™安装使用GenerateBaselines
.
当你指定这个参数为真正的
,您的测试必须使用这些认证方法中的至少一种slt。测试Case
(金宝app仿真软件测试)班级:
verifySignalsMatch
(例如,testCase.verifySignalsMatch (actVal myBaseline.mat)
)
assumeSignalsMatch
assertSignalsMatch
fatalAssertSignalsMatch
有关更多信息,请参阅在测试管理器中使用基于matlab的S金宝appimulink测试(金宝app仿真软件测试).
在测试中使用共享测试夹具并将输入指定给runtests
函数作为字符串数组或字符向量阵列,测试框架对数组进行排序以减少共享夹具设置和拆除操作。因此,测试可能以不同于输入数组中的元素顺序的顺序运行。有关更多信息,请参阅sortByFixtures
.
从R2020b开始,您可以创建支持并行运行测试的独立应用程序(需要金宝appMATLAB编译器™和并行计算工具箱)。使用这个指令%#函数并行.Pool
在你的代码中MATLAB编译器可以定位并打包并行运行测试所需的所有组件。有关更多信息,请参阅编译Matlab单元测试.
从R2021A开始,您可以通过启动并行线程工人池然后调用以下的基于线程池(需要并行计算工具箱)进行测试runtests
函数与UseParallel
名称-值对的论点。
要运行的测试runtests
在基于线程的池中受这些限制的影响:
您的测试和源代码必须只使用线程工作者支持的功能。金宝app有关基于线程的环境的限制的更多信息,请参见在基于线程和基于过程的环境之间进行选择(并行计算工具箱).
定义测试内容的文件夹必须在MATLAB搜索路径上。
测试名必须使用类名或函数名指定,而不使用文件扩展名。
基于线程的池不支持存储测试伪像。金宝app
金宝app在基于线程的环境中不支金宝app持Simulink。因此,使用编写的测试金宝appSimulink测试不能在基于线程的池上运行。
要并行运行,请设置“UseParallel”
选项真正的
.
有关并行计算的更多通用信息,请参见运行MATLAB函数与自动并行支持金宝app(并行计算工具箱).
matlab.unittest.TestResult
|matlab.unittest.TestRunner
|matlab.unittest.testsuite.
|testrunner
|testsuite
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。