主要内容

标签单元测试

您可以使用测试代码来测试分组进行分类,然后运行与指定标签的测试。典型的测试标记标识的特定的特征或描述测试的类型。

标签测试

定义测试标记,使用有意义的字符向量或一个字符串数组的单元阵列。例如,TestTags = { '单元'}要么testtags = [“单位”,“Featurea”]

  • 标记单个测试,使用TestTags方法属性。

  • 要标记一个类中的所有测试,使用TestTags类属性。如果你使用TestTags在超类属性,在子类继承的测试标签。

该样品的测试类,ExampleTagTest,使用TestTags方法属性标签单独的测试。

classdefExampleTagTest 方法(测试)功能种皮(测试用例)%测试代码结尾结尾方法(测试,testtags = {'单元'})功能TESTB(测试用例)%测试代码结尾功能TESTC(测试用例)%测试代码结尾结尾方法(测试,testtags = {'单元''FeatureA'})功能testd(testcase)%测试代码结尾结尾方法(测试,testtags = {'系统''FeatureA'})功能泰斯特(测试用例)%测试代码结尾结尾结尾

一些在课堂上测试ExampleTagTest的标签。例如,TESTD被打上'单元''FeatureA'。一个测试,testa.,不标记。

该样品的测试类,exampletagclasstest.,使用TestTagsclass属性标签的所有类中的测试,以及TestTags方法属性添加标签单独的测试。

classdef(testtags = {'FeatureB'})......ExampleTagClassTest 方法(测试)功能testF(测试用例)%测试代码结尾结尾方法(测试,testtags = {'FeatureC''系统'})功能testg(testcase)%测试代码结尾结尾方法(测试,testtags = {'系统''FeatureA'})功能testH(测试用例)%测试代码结尾结尾结尾

在类中的每个测试exampletagclasstest.被打上'FeatureB'。此外,个别测试标有各种标签,包括'FeatureA''FeatureC', 和'系统'

选择并运行测试

有选择和运行标记测试的方式有三种:

运行选定的测试使用runtests.

使用runtests.功能选择并没有显式地创建一个测试套件运行测试。选择并运行所有测试ExampleTagTestexampletagclasstest.这包括'FeatureA'标签。

结果= runtests({'exampletagtest''exampletagclasstest'},'标签''FeatureA');
正在运行的excepletagtest ..完成了exampletagtest __________正在运行的exampletagclasstest。完成exampletagclasstest __________

runtests.选择奔三次的测试。

在表中显示的结果。

表(结果)
ANS = 3×6表名称传递失败未完成工作持续时间详细___________________________ ______ __________ ____________ 'ExampleTagTest / TESTE' 真假假0.00039529 [1×1结构] 'ExampleTagTest / TESTD' 真假假0.00045658 [1×1结构]“ExampleTagClassTest/ testH”真假假0.00043899 [1×1结构]

所选择的测试泰斯特TESTDExampleTagTest, 和testHexampletagclasstest.

选择测试使用testsuite.方法

从中创建一套测试ExampleTagTest标记有类'FeatureA'

进口matlab.unittest.testsuite.sa = testsuite.fromclass(?exampletagtest,'标签''FeatureA');

从中创建一套测试exampletagclasstest.标记有类'FeatureC'

SB = TestSuite.fromFile('ExampleTagClassTest.m''标签''FeatureC');

拼接套件,并查看测试的名称。

套件= [SA SB];{suite.Name}”
ans = 3×1个单元阵列'exampletagtest / teste''exampletagtest / testd''exampletagclasstest / testg'

选择测试使用HasTag选择器

从中创建一套所有测试ExampleTagTestexampletagclasstest.课程。

进口matlab.unittest.selectors.HasTagSA = TestSuite.fromClass(ExampleTagTest?);SB = TestSuite.fromFile('ExampleTagClassTest.m');套件= [SA SB];

选择所有没有标签的测试。

S1 = suite.selectIf(〜HasTag)
S1 =测试与属性:名称: 'ExampleTagTest /种皮' PROCEDURENAME: '种皮' 的TestClass: “ExampleTagTest” BaseFolder: 'C:\工作' 参数化:[0×0 matlab.unittest.parameters.EmptyParameter] SharedTestFixtures:[0×0] matlab.unittest.fixtures.EmptyFixture标签:{1×0细胞}测试包括:0参数化,0共享测试夹具类,0标签。

选择所有与测试'单元'标记和显示他们的名字。

S2 = suite.selectIf(HasTag('单元'));{s2.name}'
ANS = 3×1个单元阵列 'ExampleTagTest / TESTD' 'ExampleTagTest / TESTB' 'ExampleTagTest / TESTC'

选择所有与测试'FeatureB'要么'系统'标签使用的约束。

进口matlab.unittest.constraints.IsEqualTo约束= IsEqualTo('FeatureB')|IsEqualTo('系统');S3 = suite.selectIf(HasTag(约束));{s3.Name}”
ans = 4×1个单元阵列'exampletagtest / teste''exampletagclasstest / testh''exampletagclasstest / testg''exampletagclasstest / testf'

也可以看看

||||