Чтобы исследовать различные способы запуска тестов, создайте тест на основе классов и тест на основе функций в текущей рабочей папке. Для тестового файла на основе классов используйте DocPolynomTest пример теста, представленный в matlab.unittest.qualifications.Verifiable пример. Для функционального тестового файла используйте axesPropertiesTest Пример теста, представленного в Write Test Using Setup и Teardown Functions.
Используйте 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
The 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);
Вы можете специализироваться на тестовом запуске, определив пользовательский исполнитель тестов и добавив плагины. The 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]);
run (TestCase) | run (TestRunner) | run (TestSuite) | runtests