Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

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 对象。测试文件是通过在工程中添加 Test 标签分类为测试的文件。

示例: 'C:\MyProjects\ThisProject'

数据类型: char | string

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 引起来。

指示是否在 TestSuite 中包含来自引用工程的测试,指定为逻辑值 truefalse。默认情况下,fromProject 仅包含来自输入中指定的工程的测试文件。为 IncludingReferencedProjects 传递 true 值会生成一个 TestSuite 数组,其中包括来自输入中指定的工程的测试和来自从父工程引用的工程的测试。有关引用工程的详细信息,请参阅大型工程组件化

示例: suite = matlab.unittest.TestSuite.fromProject(project,'IncludingReferencedProjects',true);

数据类型: logical

要在测试中使用的外部参数,指定为由 matlab.unittest.parameters.Parameter 对象组成的数组。使用此参量指定外部参数,而不是参数化测试中的现有参数。有关详细信息,请参阅在参数化测试中使用外部参数

包含测试文件的基本文件夹的名称,指定为字符串数组、字符向量或字符向量元胞数组。此参量过滤测试套件。要使测试框架包含经过过滤的套件中的一个测试,Test 元素必须包含在 BaseFolder 指定的基本文件夹之一中。如果没有 Test 元素与基本文件夹匹配,将返回空测试套件。使用通配符 (*) 以匹配任何数量的字符。使用问号字符 (?) 只匹配一个字符。

对于包中定义的测试文件,基本文件夹是顶级包文件夹的父级。

包含源代码的文件和文件夹的名称,指定为字符串向量、字符向量或字符向量元胞向量。此参量过滤测试套件。为了使测试框架在过滤后的套件中包括测试,定义测试的文件必须依赖指定的源代码。如果没有测试文件依赖源代码,则返回空测试套件。

指定的值必须表示至少一个具有 .m.p.mlx.mlapp.mat.slx 扩展名的现有文件。无法用不支持的扩展名显式指定文件名。如果指定文件夹名称,框架将提取该文件夹中受支持文件的路径。

您必须有 MATLAB Test 许可证才能使用 DependsOn。有关通过源代码依存关系选择测试的详细信息,请参阅 matlabtest.selectors.DependsOn (MATLAB Test)

示例: DependsOn=["myFile.m" "myFolder"]

示例: DependsOn=["folderA" "C:\work\folderB"]

测试的名称,指定为字符串数组、字符向量或字符向量元胞数组。此参量过滤测试套件。要使测试框架包含经过过滤的套件中的一个测试,Test 元素的 Name 属性必须匹配 Name 指定的名称之一。如果 Test 元素都没有匹配的名称,将返回空测试套件。使用通配符 (*) 以匹配任何数量的字符。使用问号字符 (?) 只匹配一个字符。

对于一个给定的测试文件,测试的名称唯一地标识测试内容的最小可运行部分。测试名称包括包名称、文件名(不包括扩展名)、过程名称和关于参数化的信息。

定义测试使用的参数的测试类属性的名称,指定为字符串数组、字符向量或字符向量元胞数组。此参量过滤测试套件。要使测试框架包含经过过滤的套件中的一个测试,Test 元素的 Parameterization 属性必须包含 ParameterProperty 指定的至少一个属性名称。如果 Test 元素都没有匹配的属性名称,将返回空测试套件。使用通配符 (*) 以匹配任何数量的字符。使用问号字符 (?) 只匹配一个字符。

测试使用的参数的名称,指定为字符串数组、字符向量或字符向量元胞数组。MATLAB 根据定义参数的测试类属性生成参数名称:

  • 如果属性值是元胞数组,则 MATLAB 根据元胞数组元素的值、类型和维度,基于元胞数组的元素生成参数名称。

  • 如果属性值是结构体,则 MATLAB 将根据结构体字段生成参数名称。

ParameterName 参量过滤测试套件。要使测试框架包含经过过滤的套件中的一个测试,Test 元素的 Parameterization 属性必须包含 ParameterName 指定的至少一个参数名称。如果 Test 元素都没有匹配的参数名称,将返回空测试套件。使用通配符 (*) 以匹配任何数量的字符。使用问号字符 (?) 只匹配一个字符。

测试过程的名称,指定为字符串数组、字符向量或字符向量元胞数组。此参量过滤测试套件。要使测试框架包含经过过滤的套件中的一个测试,Test 元素的 ProcedureName 属性必须匹配 ProcedureName 指定的过程名称之一。如果 Test 元素都没有匹配的过程名称,将返回空测试套件。使用通配符 (*) 以匹配任何数量的字符。使用问号字符 (?) 只匹配一个字符。

在基于类的测试中,测试过程的名称是包含该测试的 Test 方法的名称。在基于函数的测试中,它是包含测试的局部函数的名称。在基于脚本的测试中,它是从测试部分标题生成的名称。与测试套件元素的名称不同,测试过程的名称不包括任何包名称、文件名或关于参数化的信息。

派生测试类的父类的名称,指定为字符串数组、字符向量或字符向量元胞数组。此参量过滤测试套件。要使测试框架包含经过过滤的套件中的一个测试,Test 元素的 TestClass 属性必须指向从 Superclass 指定的类之一派生的一个测试类。如果没有 Test 元素与类匹配,将返回空测试套件。

测试使用的标记的名称,指定为字符串数组、字符向量或字符向量元胞数组。此参量过滤测试套件。要使测试框架包含经过过滤的套件中的一个测试,Test 元素的 Tags 属性必须包含 Tag 指定的至少一个标记名称。如果 Test 元素都没有匹配的标记名称,将返回空测试套件。使用通配符 (*) 以匹配任何数量的字符。使用问号字符 (?) 只匹配一个字符。

输出参量

全部展开

测试集,以 matlab.unittest.Test 数组形式返回。

属性

Statictrue

要了解方法的属性,请参阅方法属性

示例

全部展开

从标记为 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 中推出

全部展开