matlab.unittest.TestSuite 类
对要运行的测试进行分组的基础接口
描述
matlab.unittest.TestSuite
类是用于在测试框架中对测试进行分组的基础接口。测试运行程序对由 TestSuite
对象组成的数组进行操作。
创建对象
使用 TestSuite
类的静态方法创建 TestSuite
数组。您还可以通过使用 testsuite
函数来创建一个测试套件。
方法
公共方法
matlab.unittest.TestSuite.fromClass | 从 TestCase 类创建 TestSuite 数组 |
matlab.unittest.TestSuite.fromFile | 根据测试文件创建 TestSuite 数组 |
matlab.unittest.TestSuite.fromFolder | 从文件夹中的测试创建 TestSuite 数组 |
matlab.unittest.TestSuite.fromMethod | 根据单个测试方法创建 TestSuite 数组 |
matlab.unittest.TestSuite.fromName | 基于单个测试名称创建 Test 对象 |
matlab.unittest.TestSuite.fromPackage | 基于包中的测试创建 TestSuite 数组 |
matlab.unittest.TestSuite.fromProject | 基于工程中的测试创建 TestSuite 数组 |
matlab.unittest.TestSuite.fromRequirements (MATLAB Test) | Create test suite from requirements |
run | 使用配置为文本输出的 TestRunner 对象运行 TestSuite 数组 |
selectIf | 选择满足条件的 TestSuite 数组元素 |
sortByFixtures | 根据共享脚手架对测试套件重新排序 |
示例
创建测试套件
创建不同测试套件,然后串联这些套件。
在当前文件夹中名为 eyeTest.m
的文件中,创建一个基于函数的测试来测试 eye
函数。
function tests = eyeTest tests = functiontests(localfunctions); end function doubleClassTest(testCase) actual = eye; verifyClass(testCase,actual,"double") end function singleClassTest(testCase) actual = eye("single"); verifyClass(testCase,actual,"single") end function uint16ClassTest(testCase) actual = eye("uint16"); verifyClass(testCase,actual,"uint16") end function sizeTest(testCase) expected = [7 13]; actual = eye(expected); verifySize(testCase,actual,expected) end function valueTest(testCase) actual = eye(42); verifyEqual(testCase,unique(diag(actual)),1) % Diagonal values must be 1 verifyEqual(testCase,unique(triu(actual,1)),0) % Upper triangular values must be 0 verifyEqual(testCase,unique(tril(actual,-1)),0) % Lower triangular values must be 0 end
在当前文件夹中另一个名为 ZerosTest.m
的文件中,创建一个基于类的测试来测试 zeros
函数。
classdef ZerosTest < matlab.unittest.TestCase properties (TestParameter) type = {'single','double','uint16'}; size = struct("s2d",[3 3],"s3d",[2 5 4]); end methods (Test) function testClass(testCase,size,type) testCase.verifyClass(zeros(size,type),type) end function testSize(testCase,size) testCase.verifySize(zeros(size),size) end function testDefaultClass(testCase) testCase.verifyClass(zeros,"double") end function testDefaultSize(testCase) testCase.verifySize(zeros,[1 1]) end function testDefaultValue(testCase) testCase.verifyEqual(zeros,0) end end end
从基于函数的测试文件中创建一个测试套件。
import matlab.unittest.TestSuite suite1 = TestSuite.fromFile("eyeTest.m");
从 ZerosTest
测试类创建一个测试套件,只包括参数化的测试。
suite2 = TestSuite.fromClass(?ZerosTest,"ParameterProperty","*");
串联这些测试套件并运行生成的套件。成功通过所有测试。
fullSuite = [suite1 suite2]; results = run(fullSuite);
Running eyeTest ..... Done eyeTest __________ Running ZerosTest ........ Done ZerosTest __________
版本历史记录
在 R2013a 中推出R2023a: 基于验证需求的测试创建测试套件
matlab.unittest.TestSuite
类有一个新的静态方法 matlab.unittest.TestSuite.fromRequirements
,它允许您基于验证需求的测试创建一个测试套件。要使用此方法,您必须安装 MATLAB® Test™ 和 Requirements Toolbox™。
R2019a: 从 MATLAB 工程中的测试创建测试套件
matlab.unittest.TestSuite
类提供一个新的静态方法 matlab.unittest.TestSuite.fromProject
,可用于从 MATLAB 工程中的测试文件创建一个测试套件。
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)