Запущение тестов для различных рабочих процессов

Подготовка тестов в качестве примера

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

Смотрите также

| | |

Похожие темы

Была ли эта тема полезной?