主要内容

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

选择器,指定为 matlab.unittest.selectors.Selector 对象。

示例: matlab.unittest.selectors.HasTag

名称-值参数

全部展开

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 元素与基本文件夹匹配,将返回空测试套件。使用通配符 (*) 以匹配任何数量的字符。使用问号字符 (?) 只匹配一个字符。

对于命名空间中定义的测试文件,基本文件夹是顶级命名空间文件夹的父级。

包含源代码的文件和文件夹的名称,指定为字符串向量、字符向量或字符向量元胞向量。此参量通过仅包括依赖指定源代码的测试来过滤测试套件。如果没有测试依赖源代码,则返回空测试套件。

指定的值必须表示至少一个现有文件。如果指定文件夹,框架将提取该文件夹中文件的路径。

您必须有 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 中推出

全部展开