Main Content

为各个工作流运行测试

设置示例测试

要了解运行测试的不同方法,请在您的当前工作文件夹中创建一个基于类的测试和一个基于函数的测试。对于基于类的测试文件,请使用 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]);

另请参阅

| | |

相关主题