Чтобы исследовать различные способы запустить тесты, создайте основанный на классах тест и функциональный тест в вашей текущей рабочей папке. Поскольку основанный на классах тестовый файл использует тест 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(:).Nameans = 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. запущенный | matlab.unittest. TestRunner. запущенный | matlab.unittest. Testsuite. запущенный | runtests