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

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

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

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

| | |

Похожие темы