Чтобы исследовать различные способы запуска тестов, создайте тест на основе классов и тест на основе функций в текущей рабочей папке. Для тестового файла на основе классов используйте 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(:).Name
ans = 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