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