matlab.unittest.TestSuite.fromProject
类: matlab.unittest.TestSuite
命名空间: matlab.unittest
基于工程中的测试创建测试套件
语法
说明
根据指定工程中包含的所有测试文件创建一个 suite
= matlab.unittest.TestSuite.fromProject(project
)TestSuite
数组,这些文件标有 Test
分类。project
输入是已加载的 matlab.project.Project
对象或工程的根文件夹。此方法不是递归的。它只包含指定工程中的那些测试。要包含引用工程中的测试,请将 IncludingReferencedProjects
名称-值参量指定为 true
。有关工程的详细信息,请参阅工程。
根据指定工程中包含的所有相关测试文件创建一个 suite
= matlab.unittest.TestSuite.fromProject(project
,selector
)TestSuite
数组,这些文件标有 Test
分类,并满足 selector
的条件。有关选择器的详细信息,请参阅 matlab.unittest.selectors
。
根据指定工程中包含的所有测试文件创建一个 suite
= matlab.unittest.TestSuite.fromProject(___,Name,Value
)TestSuite
数组,这些文件标有 Test
分类,并满足一个或多个名称-值参量指定的条件。需要在上述任一语法中的所有参量之后指定名称-值参量。
输入参数
project
— 包含测试文件的工程
工程根文件夹的路径 | 打开 Project
对象
包含测试文件的工程,指定为工程根文件夹的路径或打开的 Project
对象。测试文件是通过在工程中添加 Test
标签分类为测试的文件。
示例: 'C:\MyProjects\ThisProject'
数据类型: char
| string
selector
— TestSuite
数组元素的过滤器
选择器类的实例
TestSuite
数组元素的过滤器,指定为 matlab.unittest.selectors
包中某个类的实例。如果您有 MATLAB® Test™ 许可证,您还可以将 selector
指定为 matlabtest.selectors.DependsOn
对象。
示例: matlab.unittest.selectors.HasBaseFolder(fullfile(pwd,'MyTests','Feature1'))
名称-值参数
将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参量名称,Value
是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
IncludingReferencedProjects
— 指示是否包含来自引用工程的测试的指示符
false (默认) | true | 0
| 1
指示是否在 TestSuite
中包含来自引用工程的测试,指定为逻辑值 true
或 false
。默认情况下,fromProject
仅包含来自输入中指定的工程的测试文件。为 IncludingReferencedProjects
传递 true
值会生成一个 TestSuite
数组,其中包括来自输入中指定的工程的测试和来自从父工程引用的工程的测试。有关引用工程的详细信息,请参阅大型工程组件化。
示例: suite = matlab.unittest.TestSuite.fromProject(project,'IncludingReferencedProjects',true);
数据类型: logical
ExternalParameters
— 要在测试中使用的外部参数
matlab.unittest.parameters.Parameter
对象数组
要在测试中使用的外部参数,指定为由 matlab.unittest.parameters.Parameter
对象组成的数组。使用此参量指定外部参数,而不是参数化测试中的现有参数。有关详细信息,请参阅在参数化测试中使用外部参数。
BaseFolder
— 基本文件夹的名称
字符串数组 | 字符向量 | 字符向量元胞数组
包含测试文件的基本文件夹的名称,指定为字符串数组、字符向量或字符向量元胞数组。此参量过滤测试套件。要使测试框架包含经过过滤的套件中的一个测试,Test
元素必须包含在 BaseFolder
指定的基本文件夹之一中。如果没有 Test
元素与基本文件夹匹配,将返回空测试套件。使用通配符 (*
) 以匹配任何数量的字符。使用问号字符 (?
) 只匹配一个字符。
对于包中定义的测试文件,基本文件夹是顶级包文件夹的父级。
DependsOn
— 包含源代码的文件和文件夹的名称
字符串向量 | 字符向量 | 字符向量元胞向量
包含源代码的文件和文件夹的名称,指定为字符串向量、字符向量或字符向量元胞向量。此参量过滤测试套件。为了使测试框架在过滤后的套件中包括测试,定义测试的文件必须依赖指定的源代码。如果没有测试文件依赖源代码,则返回空测试套件。
指定的值必须表示至少一个具有 .m
、.p
、.mlx
、.mlapp
、.mat
或 .slx
扩展名的现有文件。无法用不支持的扩展名显式指定文件名。如果指定文件夹名称,框架将提取该文件夹中受支持文件的路径。
您必须有 MATLAB Test 许可证才能使用 DependsOn
。有关通过源代码依存关系选择测试的详细信息,请参阅 matlabtest.selectors.DependsOn
(MATLAB Test)。
示例: DependsOn=["myFile.m" "myFolder"]
示例: DependsOn=["folderA" "C:\work\folderB"]
Name
— 测试名称
字符串数组 | 字符向量 | 字符向量元胞数组
测试的名称,指定为字符串数组、字符向量或字符向量元胞数组。此参量过滤测试套件。要使测试框架包含经过过滤的套件中的一个测试,Test
元素的 Name
属性必须匹配 Name
指定的名称之一。如果 Test
元素都没有匹配的名称,将返回空测试套件。使用通配符 (*
) 以匹配任何数量的字符。使用问号字符 (?
) 只匹配一个字符。
对于一个给定的测试文件,测试的名称唯一地标识测试内容的最小可运行部分。测试名称包括包名称、文件名(不包括扩展名)、过程名称和关于参数化的信息。
ParameterProperty
— 参数化属性的名称
字符串数组 | 字符向量 | 字符向量元胞数组
定义测试使用的参数的测试类属性的名称,指定为字符串数组、字符向量或字符向量元胞数组。此参量过滤测试套件。要使测试框架包含经过过滤的套件中的一个测试,Test
元素的 Parameterization
属性必须包含 ParameterProperty
指定的至少一个属性名称。如果 Test
元素都没有匹配的属性名称,将返回空测试套件。使用通配符 (*
) 以匹配任何数量的字符。使用问号字符 (?
) 只匹配一个字符。
ParameterName
— 参数名称
字符串数组 | 字符向量 | 字符向量元胞数组
测试使用的参数的名称,指定为字符串数组、字符向量或字符向量元胞数组。MATLAB 根据定义参数的测试类属性生成参数名称:
如果属性值是元胞数组,则 MATLAB 根据元胞数组元素的值、类型和维度,基于元胞数组的元素生成参数名称。
如果属性值是结构体,则 MATLAB 将根据结构体字段生成参数名称。
ParameterName
参量过滤测试套件。要使测试框架包含经过过滤的套件中的一个测试,Test
元素的 Parameterization
属性必须包含 ParameterName
指定的至少一个参数名称。如果 Test
元素都没有匹配的参数名称,将返回空测试套件。使用通配符 (*
) 以匹配任何数量的字符。使用问号字符 (?
) 只匹配一个字符。
ProcedureName
— 测试过程的名称
字符串数组 | 字符向量 | 字符向量元胞数组
测试过程的名称,指定为字符串数组、字符向量或字符向量元胞数组。此参量过滤测试套件。要使测试框架包含经过过滤的套件中的一个测试,Test
元素的 ProcedureName
属性必须匹配 ProcedureName
指定的过程名称之一。如果 Test
元素都没有匹配的过程名称,将返回空测试套件。使用通配符 (*
) 以匹配任何数量的字符。使用问号字符 (?
) 只匹配一个字符。
在基于类的测试中,测试过程的名称是包含该测试的 Test
方法的名称。在基于函数的测试中,它是包含测试的局部函数的名称。在基于脚本的测试中,它是从测试部分标题生成的名称。与测试套件元素的名称不同,测试过程的名称不包括任何包名称、文件名或关于参数化的信息。
Superclass
— 派生测试类的父类的名称
字符串数组 | 字符向量 | 字符向量元胞数组
派生测试类的父类的名称,指定为字符串数组、字符向量或字符向量元胞数组。此参量过滤测试套件。要使测试框架包含经过过滤的套件中的一个测试,Test
元素的 TestClass
属性必须指向从 Superclass
指定的类之一派生的一个测试类。如果没有 Test
元素与类匹配,将返回空测试套件。
Tag
— 标记的名称
字符串数组 | 字符向量 | 字符向量元胞数组
测试使用的标记的名称,指定为字符串数组、字符向量或字符向量元胞数组。此参量过滤测试套件。要使测试框架包含经过过滤的套件中的一个测试,Test
元素的 Tags
属性必须包含 Tag
指定的至少一个标记名称。如果 Test
元素都没有匹配的标记名称,将返回空测试套件。使用通配符 (*
) 以匹配任何数量的字符。使用问号字符 (?
) 只匹配一个字符。
输出参量
suite
— 一组测试
测试套件
测试集,以 matlab.unittest.Test
数组形式返回。
示例
从工程文件构建测试套件
从标记为 Test
文件的工程文件构建一个测试套件。此示例假设 C:/projects/project1
处的工程文件夹包含标有 Test
分类的测试文件。使用 matlab.unittest.TestSuite.fromProject
静态方法创建使用这些测试的测试套件。
打开 project1
,并将 matlab.project.Project
对象传递给 fromProject
。运行测试套件并捕获结果。
import matlab.unittest.TestSuite project = openProject('C:/projects/project1/'); suite = TestSuite.fromProject(project); result = run(suite)
包含来自引用工程的测试
从该工程和所有引用工程中标记为 Test
文件的工程文件编译一个测试套件。
import matlab.unittest.TestSuite project = openProject('C:/projects/project1/'); suite = TestSuite.fromProject(project,'IncludingReferencedProjects',true); result = run(suite)
版本历史记录
在 R2019a 中推出R2023a: 按源代码依存关系过滤测试套件
如果您有 MATLAB Test 许可证,则可以按测试文件对指定源代码的依存关系来过滤测试套件。使用 DependsOn
名称-值参量或 matlabtest.selectors.DependsOn
类来指定源文件和文件夹。
R2022b: 从元胞数组生成的参数名称更具描述性
当您将非空元胞数组分配给参数化属性时,测试框架会根据元胞数组中元素的值、类型和维度生成参数名称。在以前的版本中,如果属性值是字符向量元胞数组,该框架将根据元胞数组中的值生成参数名称。否则,该框架将参数名称指定为 value1
、value2
、…、valueN
。
如果您的代码使用参数名称来创建或过滤测试套件,请用描述性参数名称替换旧的参数名称。例如,通过用描述性参数名称替换 value1
来更新 suite = testsuite(pwd,"ParameterName","value1")
。
R2021b: matlab.unittest.TestSuite.fromProject
在创建测试套件时会忽略未定义测试过程的文件
如果您的工程包含具有 Test
分类的文件,则 matlab.unittest.TestSuite.fromProject
会在您创建测试套件时忽略未定义测试过程的文件。例如,如果抽象的 TestCase
类定义文件使用 Test
分类进行标记,则 fromProject
会忽略它。在以前的版本中,如果对除具体测试文件之外的任何文件使用 Test
分类的工程调用 fromProject
,则 MATLAB 会生成错误。经过此更改,fromProject
变得与 matlab.unittest.TestSuite.fromFolder
方法一致:这两种方法都从所有具体测试文件创建一个测试套件,并忽略该文件夹中的任何其他文件。
当 testsuite
、runtests
和 runperf
函数对组织到工程中的文件和文件夹中的代码进行操作时,此行为更改也适用于这些函数。
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)