为各个工作流运行测试
设置示例测试
要了解运行测试的不同方法,请在您的当前工作文件夹中创建一个基于类的测试和一个基于函数的测试。对于基于类的测试文件,请使用 matlab.unittest.qualifications.Verifiable
示例中提供的 DocPolynomTest
示例测试。对于基于函数的测试文件,请使用 使用设置和拆解函数编写测试 示例中提供的 axesPropertiesTest
示例测试。
在类或函数中运行所有测试
使用 TestCase
类的 run
方法可直接运行包含在单个测试文件中的多个测试。当直接运行测试时,您无需显式创建 Test
数组。
% Directly run a single file of class-based tests results1 = run(DocPolynomTest); % Directly run a single file of function-based tests results2 = run(axesPropertiesTest);
您还可以将测试文件输出分配给变量并使用函数形式或圆点表示法运行测试。
% Create Test or TestCase objects t1 = DocPolynomTest; % TestCase object from class-based test t2 = axesPropertiesTest; % Test object from function-based test % Run tests using functional form results1 = run(t1); results2 = run(t2); % Run tests using dot notation results1 = t1.run; results2 = t2.run;
您也可以使用 runtests
或从编辑器中运行包含在单个文件中的多个测试。
在类或函数中运行单个测试
通过将测试方法指定为 run
方法的输入参量从基于类的测试文件中运行单个测试。例如,仅从文件 DocPolynomTest
运行测试 testMultiplication
。
results1 = run(DocPolynomTest,'testMultiplication');
基于函数的测试文件返回 Test
对象数组而非单个 TestCase
对象。您可以通过对该数组进行索引来运行特定测试。不过,您必须检查测试数组中的 Name
字段以确保您运行正确的测试。例如,仅从文件 axesPropertiesTest
运行测试 surfaceColorTest
。
t2 = axesPropertiesTest; % Test object from function-based test
t2(:).Name
ans = axesPropertiesTest/testDefaultXLim ans = axesPropertiesTest/surfaceColorTest
surfaceColorTest
测试对应于数组中的第二个元素。
仅运行 surfaceColorTest
测试。
results2 = t2(2).run; % or results2 = run(t2(2));
您也可以从编辑器中运行单个测试。
按名称运行测试套件
您可以一起运行一组或一套测试。要使用 runtests
运行测试套件,该套件应定义为一个字符向量元胞数组,表示测试文件、测试类、包含测试的命名空间或包含测试的文件夹。
suite = {'axesPropertiesTest','DocPolynomTest'}; runtests(suite);
使用 pwd
作为 runtests
函数的输入运行当前文件夹中的所有测试。
runtests(pwd);
您也可以显式创建 Test
数组并使用 run
方法运行它们。
从测试数组运行测试套件
您可以显式创建 Test
数组并使用 TestSuite
类中的 run
方法运行它们。使用此方法,您可以显式定义 TestSuite
对象,因此可检查内容。runtests
函数不返回 TestSuite
对象。
import matlab.unittest.TestSuite s1 = TestSuite.fromClass(?DocPolynomTest); s2 = TestSuite.fromFile('axesPropertiesTest.m'); % generate test suite and then run fullSuite = [s1 s2]; result = run(fullSuite);
因为该套件是显式定义的,所以您可以轻松地对它执行更多分析,例如重新运行失败的测试。
failedTests = fullSuite([result.Failed]); result2 = run(failedTests);
使用自定义测试运行器运行测试
您可以通过定义自定义测试运行器并添加插件来详细说明测试。TestRunner
类的 run
方法作用于 TestSuite
对象。
import matlab.unittest.TestRunner import matlab.unittest.TestSuite import matlab.unittest.plugins.TestRunProgressPlugin % Generate TestSuite. s1 = TestSuite.fromClass(?DocPolynomTest); s2 = TestSuite.fromFile('axesPropertiesTest.m'); suite = [s1 s2]; % Create silent test runner. runner = TestRunner.withNoPlugins; % Add plugin to display test progress. runner.addPlugin(TestRunProgressPlugin.withVerbosity(2)) % Run tests using customized runner. result = run(runner,[suite]);
另请参阅
runtests
| run (TestCase)
| run (TestSuite)
| run (TestRunner)