主要内容

runtests

运行一组测试

描述

结果= runtests.运行当前文件夹中的所有测试,并以TestResult数组中。

例子

结果= runtests (测试运行指定的测试集。

例子

结果= runtests (测试名称,值运行一组带有一个或多个指定的附加选项的测试名称,值对参数。

例子

全部折叠

创建一个文件夹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方法,各取1testDefaultClasstestDefaultSize,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_”

包含定义作为字符串数组,字符向量或字符向量的字符串数组,字符向量或单元数组的文件的文件的名称。这个论点过滤器TestSuite数组元素。要让测试框架在套件中包含一个测试,则测试元素必须包含在指定的基文件夹中BaseFolder.如果没有测试元素匹配一个基本文件夹,则返回一个空的测试套件。使用通配符匹配任意数量的字符。使用问号字符匹配单个字符。对于包中定义的测试文件,基本文件夹是顶级包文件夹的父文件夹。

指示器在运行时应用调试能力测试,指定为真正的01).例如,如果遇到测试失败,框架会暂停测试执行以进入调试模式。

用于在子文件夹中运行测试的指示符,指定为真正的01).默认情况下,框架运行指定文件夹中的测试,但不在其子文件夹中运行。

在子包中运行测试的指示符,指定为真正的01).默认情况下,框架在指定的包中运行测试,而不是在它们的子包中。

指示符,用于包括来自按逻辑指定的引用项目的测试真正的.有关引用项目的更多信息,请参阅组件化大型项目

用于测试运行的记录诊断的最大冗长级别,指定为0到4的整数值,或者作为一个matlab.unittest.Verbosity枚举对象。的runtests函数包括在此级别及以下记录的诊断。对象的成员对应于整数值matlab.unittest.Verbosity枚举。

默认情况下runtests包含记录在matlab.unittest.Verbosity.Terse要排除记录的诊断信息,请指定LoggingLevel作为冗长(0级)。

日志诊断是通过调用日志(TestCase)日志(夹具)方法。

数字表示 枚举成员名称 冗长的描述
0 没有一个

无信息

1 结束

最小的信息

2 简洁的

适度的信息量

3. 详细的

一些补充信息

4 详细的

大量补充信息

显示事件详细信息的级别,指定为从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数组元素。要让测试框架在套件中包含一个测试,则名称财产的测试元素必须与指定的名称之一匹配名称.如果没有测试元素具有匹配名称,返回一个空的测试套件。使用通配符匹配任意数量的字符。使用问号字符匹配单个字符。

测试类属性的名称,该属性定义测试套件元素使用的参数,指定为字符串数组、字符向量或字符向量的单元格数组。这个论点过滤器TestSuite数组元素。要让测试框架在套件中包含一个测试,则参数化财产的测试元素必须至少包含由ParameterProperty.如果没有测试元素具有匹配的属性名,则返回一个空的测试套件。使用通配符匹配任意数量的字符。使用问号字符匹配单个字符。

测试套件元素使用的参数名称,指定为字符串数组、字符向量或字符向量的单元数组。MATLAB基于定义参数的test类属性生成参数名:

  • 如果属性值是字符向量的小区数组,则MATLAB从单元格数组中的值生成参数名称。否则,MATLAB指定参数名称为value1.value2、……赋值

  • 如果属性值是一个结构,MATLAB会从结构字段生成参数名。

ParameterName参数过滤器TestSuite数组元素。要让测试框架在套件中包含一个测试,则参数化财产的测试元素必须包含至少一个指定的参数名称ParameterName.如果没有测试元素具有匹配的参数名,则返回一个空的测试套件。使用通配符匹配任意数量的字符。使用问号字符匹配单个字符。

测试过程的名称,指定为字符串数组、字符向量或字符向量的单元格数组。这个论点过滤器TestSuite数组元素。要让测试框架在套件中包含一个测试,则ProcedureName财产的测试元素必须与指定的过程名称匹配ProcedureName.如果没有测试元素具有匹配的过程名,则返回一个空的测试套件。使用通配符匹配任意数量的字符。使用问号字符匹配单个字符。

在基于类的测试中ProcedureName是测试方法的名称。在基于函数的测试中,它是包含测试的本地函数的名称。在基于脚本的测试中,它是从测试部分标题生成的名称。不像名称,测试过程的名称不包括任何类或包名称或有关参数化的信息。

要包含在代码覆盖报告中的源代码的路径,指定为字符串数组、字符向量或字符向量的单元格数组。使用以下选项runtests运行指定的测试并为指定的代码文件生成代码覆盖率报告。报告显示测试在源代码中执行了哪些行。

源代码可以是一个或多个文件夹或文件的绝对或相对路径.m.mlx, 要么.mlapp扩展。

例子:runtests(测试,'eportcoveragefor','mysource.m')

数据类型:字符|细绳|细胞

运行时对指示灯进行严格检查测试,指定为真正的01).例如,如果测试发出警告,框架会生成一个限定失败。

测试类派生的类的名称,指定为字符串数组、字符向量或字符向量的单元数组。这个论点过滤器TestSuite数组元素。要让测试框架在套件中包含一个测试,则TestClass财产的测试元素必须指向从指定的类派生的测试类超类.如果没有测试元素匹配类,返回一个空的测试套件。

测试套件元素使用的测试标记的名称,指定为字符串数组、字符向量或字符向量的单元数组。这个论点过滤器TestSuite数组元素。要让测试框架在套件中包含一个测试,则标签财产的测试元素必须至少包含一个由标签.如果没有测试元素具有匹配标记名称,返回一个空的测试套件。使用通配符匹配任意数量的字符。使用问号字符匹配单个字符。

并行运行测试的指示符,指定为真正的01).

默认情况下runtests在串行运行测试。如果你设置了UseParallel真正的,然后runtests将测试套件分成不同的组,并在以下情况下并行运行:

  • 已安装“并行计算工具箱”。

  • 存在打开的并行池或在并行首选项中启用自动池创建。

否则,runtests以串行方式运行测试,而不管其值为什么UseParallel

并行测试可能与其他选项不兼容。例如,测试在串行if中进行UseParallel调试都被设置为真正的.当并行运行时,测试框架可能会改变组的顺序和数量,或者在每个组中包含哪些测试。

用特定的确认方法创建或更新测试中使用的mat文件的指示符,指定为真正的01) .你必须有金宝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测试不能在基于线程的池上运行。

扩展能力

介绍了R2013b