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