Чтобы исследовать различные способы запустить тесты, создайте основанный на классах тест и функциональный тест в вашей текущей рабочей папке. Поскольку основанный на классах тестовый файл использует 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]);
runtests | run (TestCase) | run (TestSuite) | run (TestRunner)