Чтобы исследовать различные способы запустить тесты, создайте основанный на классах тест и функциональный тест в вашей текущей рабочей папке. Поскольку основанный на классах тестовый файл использует тест DocPolynomTest
в качестве примера, представленный в примере matlab.unittest.qualifications.Verifiable
. Поскольку функциональный тестовый файл использует тест axesPropertiesTest
в качестве примера, представленный в Тесте записи Используя Функции Отключения и Setup.
Используйте метод run
класса TestCase
, чтобы непосредственно запустить тесты, содержавшиеся в одном тестовом файле. При запущении тестов непосредственно, вы не должны явным образом создавать массив 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
. Например, только запустите тест, testMultiplication
, из файла DocPolynomTest
.
results1 = run(DocPolynomTest,'testMultiplication');
Функциональные тестовые файлы возвращают массив объектов Test
вместо одного объекта TestCase
. Можно запустить конкретный тест путем индексации в массив. Однако необходимо исследовать поле Name
в тестовом массиве, чтобы гарантировать, что вы запускаете правильный тест. Например, только запустите тест, surfaceColorTest
, из файла axesPropertiesTest
.
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
и использовать метод run
в классе TestSuite
, чтобы запустить их. Используя этот подход, вы явным образом задаете объекты 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);
Можно специализировать тест, запускающийся путем определения пользовательского исполнителя тестов и добавления плагинов. Метод run
класса TestRunner
работает с объектом 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]);
matlab.unittest.TestCase.run
| matlab.unittest.TestRunner.run
| matlab.unittest.TestSuite.run
| runtests