Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

matlab.unittest.TestSuite.fromProject

类: matlab.unittest.TestSuite
包: matlab.unittest

从工程中的测试创建测试套件数组

语法

suite = matlab.unittest.TestSuite.fromProject(project)
suite = matlab.unittest.TestSuite.fromProject(project,selector)
suite = matlab.unittest.TestSuite.fromProject(project,Name,Value)

说明

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(project,Name,Value) 根据指定工程中包含的所有测试文件创建一个 TestSuite 数组,这些文件标有 Test 分类,并满足一个或多个 Name,Value 对组参数指定的条件。

输入参数

全部展开

包含测试文件的工程,指定为工程根文件夹的路径或打开的 Project 对象。测试文件是通过在工程中添加 Test 标签分类为测试的文件。

示例: 'C:\MyProjects\ThisProject'

数据类型: char | string

TestSuite 数组元素的筛选器,指定为 matlab.unittest.selectors 包中选择器类的实例。

示例: matlab.unittest.selectors.HasBaseFolder(fullfile(pwd,'MyTests','Feature1'))

名称-值对组参数

指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须放在引号中。您可采用任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN 所示。

包含用于定义测试类、函数或脚本的文件的基本文件夹的名称,指定为字符串数组、字符向量或字符向量元胞数组。此参数筛选 TestSuite 数组元素。要使测试框架包含套件中的一个测试,Test 元素必须包含在 BaseFolder 指定的基本文件夹之一中。如果没有 Test 元素与基本文件夹匹配,将返回空测试套件。使用通配符 * 以匹配任何数量的字符。使用问号字符 ? 只匹配一个字符。对于包中定义的测试文件,基本文件夹是顶级包文件夹的父级。

用于测试的外部参数,指定为 matlab.unittest.parameters 包中类的实例。参数实例提供用于参数化测试的外部数据。框架使用这些外部参数代替在参数化测试中定义的对应参数。有关详细信息,请参阅在参数化测试中使用外部参数

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

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

数据类型: logical

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

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

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

  • 如果属性值是字符向量元胞数组,MATLAB 将根据元胞数组中的值生成参数名称。否则,MATLAB 将参数名称指定为 value1value2、…、valueN

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

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

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

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

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

测试套件元素使用的测试标记的名称,指定为字符串数组、字符向量或字符向量元胞数组。此参数筛选 TestSuite 数组元素。要使测试框架包含套件中的一个测试,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)

从该工程和所有引用工程中标记为测试文件的工程文件编译一个测试套件。

import matlab.unittest.TestSuite
project = openProject('C:/projects/project1/');
suite = TestSuite.fromProject(project,'IncludingReferencedProjects',true);
result = run(suite)
在 R2019a 中推出